BitArts Blog

ロードバイク通勤のRubyプログラマで伊豆ダイバー。の個人的なブログ。

アスペクト指向

IoC(DI)とAOPについてはだいぶ理解してきたつもり。まだ机上レベルだけど。S2ではinstance=outerにすればコンテナ管理されていない既存のクラスにJoinpointを設定できるのかな?そろそろ色々実際に動かして試してみたいところ。だけどAOPって使い際が難しそうだ。宣言的トランザクションや例外処理ではかなり便利に使えそうだけど、それ以外の使い道って??という感じ。

アスペクト指向」というと、最初は感覚的にオブジェクト指向と同レベルで捕らえてしまいそうな危険性があるが、あくまで単なるフィルタのような概念だと考えたほうがよさげ。どうも「指向」ってのが微妙にうさんくさくてイヤ。とりあえず宣言的トランザクション、例外処理、ロギングなど、Advice(Interceptor)パターン集みたいなものが出てくれば活用できそうだが、逆にそういうパターン集が出てくるまでは素人が下手に手を出すのは危険かもしれない。下手に乱用すればデバッグが超困難になるるのは間違いない。AOPにおいてAdiviceは本来Crosscutting Concerns(横断的関心)のはずなのだが、これを正確に切り出せず、メソッドがAdviceに依存してしまうとコードを追うのがすごく難しくなりそうだから。

ということで(?)、8/6にアスペクト指向技術セミナーというのがあるみたいなので、勉強しに行ってきます。