|
PHOTO:
茅ヶ崎の波 surf |
海の写真 ocean |
携帯 待ち受け画像 |
レストラン shop |
色々 etc
TEXT: ネット技術 net | 自然,エネルギー,写真,旅 Eco | 映画 movie | 本 book |
オブジェクト指向プログラミングを補う目的で、アスペクト指向と呼ばれる手法が実現化されつつある。分散コンピューティング環境での開発上の問題点を踏まえて、1995~97年頃に、米XeroxのPARCで基本が作られたようです。
c|netの記事「米IBMと米JBossが検討中の、新たなJava計画とは?」を読んで興味を持ったので、ちょっと調べてみました。
「アスペクト指向プログラミングの成熟(Linux.com)」
この辺りは、分散プログラミングではなく普通のWEBアプリケーションをJavaで書いていても思い当たるケースが結構あるのでは。例えばログインが必要なページ(機能モジュール)が複数あって、ログイン状態の有無の判別とログイン処理を一つのパッケージにまとめることができても、ログインクラスのインスタンス化とメソッド呼び出しは、やはり分散した複数の機能モジュール単位で記述しなければいけない、など。色々な解説記事でも、他に分かりやすい例として、デバック用のログ記録なども例に挙げています。
実際にアスペクト指向プログラミングをしてみたわけでは無いのですが、確かにオブジェクト指向を補う新しいステップのような気がします。ちょっと抽象的なイメージですが、オブジェクト指向では”あるモノの形と動作を定義”して、モノ同士の関係性からプログラムを構築する(現実世界もモノで出来上がっているので、メタファーとしてよく適合する)。アスペクト指向は、ある状態に対するリアクションを定義することで、より簡単に人や動物の行動を記述できるアフォーダンス理論的なアプローチを加えるような感じもします。アフォーダンスは、モノが人にアクションを起こさせる情報を提供している(アフォードしている)という表現なので、厳密には違うのかもしれませんが。アフォーダンスの解説では以下の書籍が非常にわかりやすくて面白いです。「アフォーダンス-新しい認知の理論」
AOPの実装としては、PARCで開発されたAspectJというプロジェクトがEclipse(!)のプロジェクトとして移管、Java環境向けに開発されていています。AspectJに関しては以下のページが詳しいです。
The AspectJTM Programming Guide
AspectJ 環境を構築しよう
AspectJ Tips and Pitfalls
AspectJ解説