トップ «前の日記(2005-12-22) 最新 次の日記(2005-12-24)» 編集

豊田正史のSLとは関係ございません


2005-12-23

_ [] 千葉滋「アスペクト指向入門」

本屋をふらふらしていたら見つけた千葉先生によるAOP本。AOPには今まで全然興味が湧かず無視してきたのだが、こうして本になってるということはそろそろ概念がまとまってきたのかなと思って買ってみた。おお、巻頭にG. Kiczalesからのお祝いの言葉がある。で、とりあえず1章だけ読んだ。呼ばれ側モジュールの再利用を容易にするのがOOで、呼ぶ側モジュールの再利用を容易にするのがAOと言うことらしい。でもここまで読んだ限りでは、なんで言語が頑張ってアスペクトを実現しなくてはならないのか良く分からない。ブラウザ・エディタが頑張って、コードの見通しを良くしたり、コード変更のコストを減らしたりしたほうが良いような気がする。先を読めばこの辺の疑問への答えがあるのだろうか。

本日のツッコミ(全9件) [ツッコミを入れる]
_ いあいあはすた〜 (2005-12-24 06:47)

> でもここまで読んだ限りでは、なんで言語が頑張ってアスペクトを実現しなくてはならないのか良く分からない。ブラウザ・エディタが頑張って、コードの見通しを良くしたり、コード変更のコストを減らしたりしたほうが良いような気がする。<br><br>全くその通りだと思います。言語の仕様で実現すべき事、開発環境で支援すべき(出来る)事、手法を適用して解決すべき事柄がそれぞれ有るのだと思います。<br><br>> 先を読めばこの辺の疑問への答えがあるのだろうか。<br><br>先を読んでおいらが間違っていたら教えてくださいまし。わくわく。

_ やまざき (2005-12-24 10:15)

基本的にはとよださんに賛成ですが, 言語でサポートしないといけない局面というのはあると思います.<br>例えば, 既にあるライブラリに対してログ機能を追加するのは, ブラウザやエディタがいくら頑張っても実現できませんよね?

_ とよだ (2005-12-24 18:42)

むむむ、「お前は勉強が足りん」というコメントが付くかと思っていたのですが...。もうちょっと読んでみます。<br>ところで、AspectJって「既にあるライブラリ」に再コンパイルなしでロギング追加とかできるんですか。

_ やまざき (2005-12-24 22:33)

コンパイルの定義が微妙ですが, AspectJは既存のバイトコードのライブラリにweaveすることが確か出来たはずです. しばらくいじっていなかったので, 忘れました.

_ とよだ (2005-12-25 01:06)

ほほう。面白げですね。でも既存のライブラリの中身の知識がないと結局アスペクトは書けなさそうな気がするなあ。

_ いあいあはすた〜 (2005-12-25 04:24)

> むむむ、「お前は勉強が足りん」というコメントが付くかと思っていたのですが...。<br><br>いや、わしもAspect指向は90年代の元論文と最近出たのとAspectJの言語仕様しか読んでいないので何も分かっていない状態なのdeath。上のコメントは直感と快楽の産物death。でもmixiのソフトウェア工学コミュの議論見てますとAOPに疑念を持っているのはおいらだけでは無いみたいですが。<br><br>横断的関心事という問題意識は正しいと思うのですが、横断的関心事にも色々あって、AOPを用いる事によって「妥当な労力」で解決できるような事例ってどれくらいの範囲なんだろうなあ、というのがあるんですよね。まあ、logとかは良く出てくる例なんですが、自分は妥当な労力じゃ解決出来無そうな例を抱えていますので。応用範囲が狭いのなら別に言語じゃなくても良いジャマイカ、というのがおいらの意見です。<br><br>というわけで、やはり直感と快楽だけで物を言っているのは不味いので読んでみた方が良いかなあ。

_ やまざき (2005-12-25 11:25)

その通りです>とよださん<br>厳密には, 単純なロギングのような処理だとライブラリの中身を知らなくても書けるのですが, 少し複雑になると元のライブラリに依存してしまいます.<br>例えば, バイトコードパーサに対するベリファイアをアスペクトで書いたことがあるのですが, 現状のAspectJだとベリファイアのコードがパーサにべったり依存してしまい, 再利用できません.<br>その中には既存の他のアスペクト指向の研究成果で何とかなる部分もありますが, やっぱりどう頑張っても強い依存関係は残ってしまうように思います.

_ やまざき (2005-12-25 11:27)

そうは言っても, 例えばVisitorをがんがん使っても効率を気にしなくて済むというのは結構嬉しいことなので, 現行のAspectJでも使いこなせばそれなりの道具にはなると思います.

_ とよだ (2005-12-25 23:09)

変更に伴う労力とか、見通しの良さとか系統的に評価できればよいんですけどねええ。難しそうですよね。<br>Visitorの例は本にもあるようなので、そこまでは頑張って読みます。


README日記の書き方