RubyのDI、AOPフレームワーク
『JavaからRubyへ』は第6章の途中まで読んだけど、技術面の話もやっぱり概念的な話しか出てこないので、具体的にDIの代わりにこうするみたいなのはわからなかった。
仕方がないのでGoogle先生に聞いてみると、「Ruby DI」で自分の記事が最初にきちゃったよ。。。
気を取り直して調べてみると、RubyにもそれなりにDIやAOPのフレームワークはあるみたいだ。せっかくなので調べた範囲でリストアップしておこう。(今後検索でここにきちゃう人のためにもね)
まずはDIフレームワーク
- Needle(http://needle.rubyforge.org/)
- Copland(http://copland.rubyforge.org/)
- Rico(http://www.picocontainer.org/Rico)
- tudura(http://nihohi.sourceforge.jp/cgi-bin/index.cgi)
Needleが有力そうな印象。
CoplandはNeedleの作者がNeedleの前に作ったDIフレームワークでJavaのHiveMindベースらしい。CoplandのJavaっぽさをなくして新しく作ったのがNeedleってことになるみたい。
その誕生秘話がこれ。
http://www.rubygarden.org/index.cgi/Libraries/copland-to-needle.rdoc
この人はRailsのデプロイツールCapistrano(旧SwitchTower)も作ってる。
- AspectR(http://aspectr.sf.net/)
- CGIKit::Aspect(http://cgikit.sourceforge.jp/cgi-bin/ja/index.cgi?AOP)
- あそびぃ(http://asoby.redirectme.net/)
こちらはAspectRが有名みたい。CGIKit::Aspectも簡単に使えそうな印象。
で、RailsでもDIは検討されたけど、DIフレームワークに依存しない形で統合するように落ち着いたという話を発見。
http://andore.com/money/trans/railsInjected_ja.html
結局RubyでもDIとかAOPが有用な場面はあるしフレームワークもある。でもそれらを使って複雑にするほどメリットがないってことのようだ。
あとは実際にRubyでそれなりの規模のものを作ってみて本当にDIやAOPが必要かどうかは見定めてみよう。必要ならフレームワークがあるということがわかっただけでも今回はよかったと思う。
そのほかの参考記事も最後に挙げておく。
http://jp.rubyist.net/magazine/?0002-RLR
http://www.thinkit.co.jp/free/article/0608/12/4/
OS自作入門−1日目
- 作者: 川合秀実
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2006/03/01
- メディア: 単行本
- 購入: 36人 クリック: 735回
- この商品を含むブログ (299件) を見る
1日目はバイナリエディタでフロッピーディスク用イメージを書いて起動しちゃうという荒業(?)から始まる。次はそれをNASKというアセンブラで書く。ここまで。
いや〜、おもしろい。普段Javaとか書いてるとまったく意識しない部分をやっているのですごく新鮮。まだ起動部分のプログラムはブラックボックスのままただバイナリを書いてるという状態なんだけど、それでも自分が書いたものをフロッピーディスクに入れてPCを起動したらメッセージが出力されるってのはそれだけで感動モノ。
ずっとC++、Java、Rubyとかでプログラミングしてきたわけだけど、それが何で動いているのか漠然とは理解しているつもりでも実際のところよくわかってない気がしていた。それを解消すべくやってみようと思う。っていうのは建前で、ただ楽しそうだったからやってみるって感じ。他にやるべきことはたくさんあるわけだけど、今やりたいことがこれだったのでその気持ちを大事にしてみようと思う。
はてさて、30日目までたどり着くやら。
JavaからRubyへ
- 作者: Bruce A. Tate,角谷信太郎
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2007/04/21
- メディア: 単行本(ソフトカバー)
- 購入: 3人 クリック: 53回
- この商品を含むブログ (119件) を見る
ところでRubyだとS2が対象としてるDIやAOPってのはどーしてるんでしょうね?「DIでのロジック切り替えなんかはDuckTyping+クロージャで切り替えられるしAOPなんて特異メソッドでなんとかなるぜ」とかそんな感じでしょうか?(少しだけ考えて知ってる言葉並べただけですw)
3章以降を読めばわかってくるのかなぁ。
初心者マークの1終了
淡々と寝る前にちょこっとだけやってるえいご漬け。やっと初心者マークの1が終わり。普段のゲームの仕方なら間違いなく1日目で突破している量。まだ合計でも1時間もやってないんじゃないかな。
淡々と毎日やってみる取り組みは今のところ継続中。ってこの程度は熱中してても続けてるであろう日数だけどね。