Show Menu
トピック×

ソフトウェアのアーキテクチャ

アップグレードのためのデザイン

OOTB 動作を拡張するときは、アップグレードを念頭に置いておくことが重要です。/appsディレクトリ内のカスタマイズを常に適用し、/libsディレクトリ内の対応するノードの上にオーバーレイするか、sling:resourceSuperTypeを使用して初期設定の動作を拡張します。 新しいAEMバージョンをサポートするためには、一部の変更が必要になる場合がありますが、この方法に従う場合は、新しいバージョンでカスタマイズ内容を上書きしないでください。

可能な場合はテンプレートおよびコンポーネントを再利用する

これにより、サイトの外観と操作性をより一貫性のあるものにし、コードのメンテナンスを簡素化できます。新しいテンプレートが必要な場合は、clientlib inclusionなどのグローバル要件を1か所にコード化できるように、共有ベーステンプレートから必ず拡張してください。 新しいコンポーネントが必要な場合は、既存のコンポーネントから拡張するオポチュニティを探します。

テンプレートデザイン

ページで各 parsys にどのコンポーネントを含めることができるかを定義することで、サイトの外観と操作性における一貫性を制御できます。ページ上のデザインへのアクセスを制限することで、「上級作成者」は、開発者の介入なしに、許可されたコンポーネントをページごとに変更でき、他の作成者は会社の基準に従うようにできます。

SOLID アーキテクチャを開発する

SOLID は、アーキテクチャに関する準拠すべき 5 つの原則を示す略語です。
  • 単一 ​の責任原則 — 各モジュール、クラス、メソッドなどは1つの処理のみを行う必要があります。
  • 開く/ ​閉じる原則 — モジュールは拡張用に開き、変更用に閉じる必要があります。
  • リスコ ​ブ置換の原則 — 型は、そのサブタイプで置き換える必要があります。
  • インタ ​ーフェイスの設定原則 — 使用しないメソッドにクライアントを強制的に依存させる必要はありません。
  • 依存 ​性反転原則 — 高レベルモジュールは低レベルモジュールに依存しないでください。 どちらも、抽象に依存する必要があります。抽象が詳細に依存しないようにします。詳細が抽象に依存するようにします。
この 5 つの原則に準拠しようと努力することによって、システムでの厳密な関心の分離が実現します。

堅牢性の原則に準拠する

堅牢性の原則では、送信内容に対しては保守的になり、受信内容に対しては寛容になることと規定しています。言い換えれば、第三者にメッセージを送る場合は、完全に仕様に従うべきですが、第三者からのメッセージを受け取る場合は、メッセージの意味が明確であれば、非適合メッセージを受け取るべきです。

独自のモジュールにスパイクを実装する

スパイクおよびテストコードは Agile ソフトウェア実装の不可欠な要素ですが、それらが適切なレベルでの管理なしで実稼動コードベースに入り込まないようにする必要があります。その結果、独自のモジュールにスパイクを作成することをお勧めします。

独自のモジュールにデータ移行スクリプトを実装する

データ移行スクリプトは実稼動コードで、通常は、サイトの初期起動時に 1 回のみ実行されます。したがって、サイトがライブになるとすぐに、このコードは無効になります。 移行スクリプトに依存する実装コードを作成しないようにするには、独自のモジュールに実装する必要があります。 また、起動後すぐにこのコードを削除し、システムからコードが不正に削除されるようにすることができます。

POM ファイルで公開済みの Maven 表記規則に従う

Apache has published style conventions at https://maven.apache.org/developers/conventions/code.html . 新しいリソースがすばやく速くアップするのを簡単にするため、これらの規則に従うのが最適です。