AspectJ in Action

ManningのAspectJ in Actionを読了しました。あまり期待していなかったのですが、自分の中では当たり本です。なぜなら、私がこの本を買った目的はAOPの基礎知識の習得とエンタープライズJavaへのAspectJの応用だからです。この2点はしっかりクリアしています。

初心者がAspectJを使うのに最初に障害となるのは、AOPの概念を理解するところでしょう。まずJoin points, Pointcut, Advice, Aspectsといった用語を正しく理解することが先決です。この本では、AOPの導入部でこれらの用語を簡潔に説明しています。ここがいい。時間の無い方は本書の1-3章だけでも十分価値があるのではないでしょうか。

この著者は図の使い方がとても上手です。AOPとはcrosscutting concernをモジュール化する技術ですが、この本では対象となる問題を個々のconcernに分解する様子をプリズムを使って図示しています(左のリンクにはありませんが、本の方ではconcernの合成の方にも逆三角形のプリズムを使っています)。それと、シーケンス図を使ったAspectJのPointcutの解説は秀逸で、複雑な仕様を根気よく説明しています。

後半は、エンタープライズ向けの豊富な応用例が紹介してあります。しかも、プログラムの解説は非常に丁寧です(ちょっと丁寧すぎるきらいもありますが)。この本を読むと日々のツールとしてAspectJを使いたくなること請け合いです。応用例としては、ログはもちろんですが、私はServletEJBのプロファイリングに使いたくなりました。

このように、私としては本書に出会えて良かったと思っています。ただ、この本ではAspectのinterceptの側面の解説や例は多いのですが、Aspectのcompositionという側面についてはあまりありません。Aspectの継承や組み合せ、IntroductionによるAspectの構造面での応用については別の文献で補う必要がありそうです。