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

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

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. 新しいリソースが迅速にアップグレードしやすくなるので、これらの規則に従うことをお勧めします。

このページ