N2 ToolBox(跡地)

跡地です。引っ越しました。http://d.hatena.ne.jp/nosen

使い勝手改良中

2007-10-25 00:35:36 | LiQ
現在、お仕事のプロジェクトのフレームワークをLiQ Container ベースで作ってるのですが、半年もの間 練り上げた API が実際使ってみると以外に
使いにくい部分もあって、それなりにショックです。

しかし、嘆いていても始まらないので、地道に改良作業を続けています。

その結果、例えば以下のようにModuleの記述を改善することができました。
(改良前)
register(Components.createdBy(
        methodsOf(ObjectMethodModule.class)
            .withAnnotation(FactoryMethod.class), this));

(改良後)
component(created.by(
        methods.of(this)
            .withAnnotation(FactoryMethod.class)));


この改良は見た目以上にインパクトが大きいものです。
なぜなら、改良前のmethodsOfというメソッドは、
実はReflectorというクラスのstaticメソッドをstaticインポート
したものでした。

一番の問題は、
Eclipseがstaticインポートをうまく補完できない(嘘でした。すみません。下のkoichikさんのコメントを参照してください)

ことで、いちいちstaticインポート文を書くのが耐えがたいほどめんどくさい
ものになってしまっていました。

暫く悩んだ後、たどり着いた解決策が改良後のコードです。
同じことがmethodsというstaticフィールドのofメソッドを呼び出すことで
実現されてます。

こういう風にすると、いちいち面倒なimport 文を書かなくてもきれいに
補完がきくようになる、という訳です。

嘘でした。すみません。下のkoichikさんのコメントを参照してください

LiQの今後の予定

2007-10-23 00:32:08 | LiQ
今日、ひさびさに仕事でマジ切れしました。

通常、歳をとるに従い、人間が大きくなっていくものですが、
私の場合は、どんどん人間が小さくなっていく気がします。

それはさておき、なぜここに来てLiQ Containerのリリースを急いだのかというと、
今取り組んでいるプロジェクトはひさしぶりに言語がJavaなので、
うやむやのうちにうまいことLiQ を突っ込んでしまおう、と企んでいるからです。

実際のプロジェクトでLiQ を使って作ったフレームワークを構築してみて、
プロジェクトを跨って切り出せそうな部分があれば、
そのアイデアを生かしてLiQ と組み合わせる部品として公開していきたい、
と考えています。


一発でいいモノができるわけないから、
部品として切り出すときにはどうせソースは1から書き直すことになるので、
特に問題はないかな、と思ってます。


LiQ Container 1.0-beta リリース

2007-10-17 01:07:58 | LiQ
仕事が忙しかったこともあり、半年程休眠していた
LiQ Container、世間様からはとっくに忘れ去られていそうですが、
実はひっそりと開発を続けていました。

半年かけて、やっと自分で使いたいと思えるものが出来てきたので、
beta版ということでリリースしようと思います。

前回のリリースからは、API等かなり変わっています。
コンセプト的に一番変わったところは、アノテーションを駆使して、
ルールベースでInjectionの設定ができるようになったところでしょうか。

これは、上半期の仕事で作ったPHPのフレームワークの成果を
フィードバックしたものです。

また、日本語でJavaDocとユーザガイドを書きました。
結果的にフレームワークのためのフレームワークともいえる
かなり抽象度の高いプロダクトになってしまったので、
はたしてこの程度のドキュメントでみなさまに理解していただけるものか、
超不安です。。。

多分まだ言葉たらずなところが多々あるかと思いますが、
ご意見、ご感想等いただけると幸いです。

ダウンロードはこちら

Webサイトはこちらから