AOPの記事

ドメインモデル管理のあらゆる側面」という記事を読みました。

http://www.infoq.com/jp/articles/aspects-of-domain-model-mgmt

この記事では、コードを大きく2つに分類してます。

  • ドメインモデル(ビジネス概念)
  • インフラストラクチャコード(ドメインモデルをサポートする仕組み。O/Rマッパーとか)

Dirtyフラグと遅延ロードを例に、ドメインモデル貧血症にもドメインモデル肥満症にもならないように、インフラストラクチャコードをいかに上手く適用するかということを説明しています。オチとしては、AOPアスペクト指向)いいよ。という話なのですが、その過程で、Proxyパターン、Abstract Factoryパターン、Compositeパターン、AOPと、ひたすらリファクタリングと欠点指摘と繰り返して行きます。

私はSeasarAOPを理解したせいか、AOPはレイヤの狭間に適用するという感覚が強かったのですが、この記事では、ドメインモデルに横断的関心を埋め込むことが前提だったことや、単一継承言語の特徴や、パターンの適用例が具体的だったので、読んでいて面白かったです。

ちなみに、説明コードがC#なのにびっくり(たぶんJavaの人でも問題なく読めると思います)、原文のコメントの量にもびっくりでした。最後の紹介を見て、著者がアバナードのオランダの人っぽくて、少し納得しました。