2006/10/17
「アスペクト指向入門」を読みました
読む前のAOP(アスペクト指向)に対する印象は、「フックやインターセプタのような機能を形式化したもの」という程度でした。 これは一面的な見方であったようです。
「オブジェクト指向は呼ばれる側のモジュールを再利用するための技術。一方、アスペクト指向は呼ぶ側のモジュールを再利用するための技術」という説明は、なるほどこんな見方があったのかと感心しました。 実際、オブジェクト指向に対するサブジェクト指向という考えがあり、AOPの源流のひとつのようです。知りませんでした。
基礎編は非常に面白いです。読む価値があります。AOPは意外に使えるかも、と思ってしまいました。 後半、ポイントカット引数やインタータイプ宣言のあたりになると、面倒な印象が強くなります。
最終的な感想は、テストやデバッグなどの補助的な役割には使えそう、と言うものです。本体のソースに手をいれず動的解析をしたい時に有用そうです。ad hocに実験用コードをAOPで書くイメージです。これはデバッガの領域かもしれません。AOPはデバッガに隠蔽されれば実用的に使えそうです。
この用途に限定すると、織り込み(weave)処理のタイミングは可能な限り遅延している方が便利です。本では、織り込みのタイミングの例として、コンパイル時、ロード時、実行時と挙げられています。最後のは動的織り込み処理(dynamic weaving)と呼ぶようです(実用レベルの実装は無いとのこと)。IBMなら実現するかもしれませんが、実現した頃にはJavaが無くなっていそうです。
AOPには独特な用語があります。特に「アドバイス」という用語には違和感がありました。本を読んで、「アドバイス」がLisp由来だと知りました。
- Category(s)
- カテゴリなし
- The URL to Trackback this entry is:
- http://dev.ariel-networks.com/Members/inoue/aop-book/tbping
Re:「アスペクト指向入門」を読みました
「Emacs Lisp関数のアドバイス」
http://www.fan.gr.jp/~ring/doc/elisp_20/elisp_17.html