Archive for 6 月, 2009


Google Guiceが便利!

add to hatena hatena.comment (2) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 2

model2

Googleが開発したGuiceというDI(Dependency Injection)フレームワークが便利すぎる。

ちょっと、Guiceの勉強してみて3Dプログラムを開発してみたけど、各クラスの依存関係を簡単に分断できました。さらにXMLなど静的ファイルを利用して、あとから機能を追加/削除を簡単にしたい箇所もすべてプログラムに書くことができました。

これでは、何が何やら分からない人も多いと思いますので、分かりやすく書くと、上の画像の右にあるボタンは、DIで簡単に取り外しができるようになっています。

依存関係はすべてJavaのソースコードとして記述してあるので、Eclipseのリファクタリング機能でクラス名やメソッド名、パッケージ階層などを簡単に変更できます。これが、従来通りXMLファイルにパッケージ名やクラス名を書いておいて、リフレクションでクラスをロードするようにプログラムを書いていると追従が非常に困難になってしまいますし、XML記述時のタイプミスも実行時まで発見されない可能性もあります。

さらに、DIでボタン機能が依存注入されているので、他の機能に切り替えるのも非常に簡単で、モッククラスと切り替えてテストプログラムを走らせるのも非常に楽です。

また、普通に公開されているGuiceのバイナリパッケージには含まれていないのですが、リポジトリからソースコードをチェックアウトしてきてビルドすると、extensions\grapher以下に参照関係をグラフで表示するためのライブラリが生成されます。

これを利用すると、.dotという拡張子のファイルを生成でき、Graphvizというツールにかけると以下のような画像が生成されます。これは便利!!!

model21

以下のメソッドにファイル名と、injectorインスタンスを与えるだけでファイルを出力できます。

CODE:
  1. public static void graph(String filename, Injector demoInjector) throws IOException {
  2. PrintWriter out = new PrintWriter(new File(filename), "UTF-8"); //$NON-NLS-1$
  3.  
  4. Injector injector = Guice.createInjector(new GrapherModule(), new GraphvizModule());
  5. GraphvizRenderer renderer = injector.getInstance(GraphvizRenderer.class);
  6. renderer.setOut(out).setRankdir("TB"); //$NON-NLS-1$
  7.  
  8. injector.getInstance(InjectorGrapher.class).of(demoInjector).graph();
  9. }

  • Digg
  • del.icio.us
  • Facebook
  • Google
  • hatena
  • LinkedIn
  • Technorati
  • Tumblr
  • TwitThis

Google Waveのアカウントを発行してもらった

add to hatena hatena.comment (0) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 0


wave1

非常に多くの人が検索エンジンで飛んできて、ブログを読まずに「招待してくれ」というコメントやメールを送ってくる人が後を絶ちません。まずは、こちらを読んで下さい

せっかく、Google Waveのアカウントを発行してもらったのに、知り合いを招待できんのか!

一人で遊ぶしかないなんて。残念でならない。。。

左下に追加されているユーザは自分でテスト用のユーザデータを追加したもの。

次のニコニコ生放送のテーマは「Google Waveを触らせます」で決まりだな(笑)

  • Digg
  • del.icio.us
  • Facebook
  • Google
  • hatena
  • LinkedIn
  • Technorati
  • Tumblr
  • TwitThis

Javaの勉強

add to hatena hatena.comment (0) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 0

すぎゃーんさんの記事からたどりつきました。

勉強がんばってください!

新入社員にこういうのやらせるのは面白いかも。

  • Digg
  • del.icio.us
  • Facebook
  • Google
  • hatena
  • LinkedIn
  • Technorati
  • Tumblr
  • TwitThis