BitArts Blog

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

アスペクト指向技術セミナー

行ってきた。ひがやすお氏以外の講演はAspectJに関する説明だったんだけど、やっぱり比べちゃうとS2AOPはシンプル。というか、やはりAspectJは独自の言語拡張という点が面倒かも。敷居が高いというよりも、現場で受け入れられるのかという意味で。それにアスペクトを差し替えるたびに毎回ウィーブ&フルビルドなのか?ちょっと開発リズムが悪くなりそう。

S2AOPのほうは、途中まですごく分かりやすくて、おおー!という感じなんだけど、Core Concernsのほうでコンテナからインスタンスを取り出すような処理が出てきて、あれれれ、という感じか。やはりS2AOPはDependency Injectionと組み合わせてなんぼですかね。既存のプログラムに後付けでAdviceを加えたいという場合には、AspectJのような仕組みのほうがいいのかも。でもAspectJってAdviceを記述する同じファイル内でポイントカットを指定するような雰囲気だったんですけど。これだとアスペクトを再利用できないような。ってまだ全然良く分かってないけど。

思うに、AspectJに関しては、アスペクト指向機能がJavaの言語仕様に取り込まれるなり、あるいは新たなアスペクト指向言語が登場するまでは、過渡期なのではないかと。今のところは、ひがさんが言っていたように使えるところで使うに留めるのが無難かと。宣言的トランザクション、例外処理、セキュリティ機能なんかではCore Concernsに副作用もなく便利に使えそうだと思った。