最近メッセージングバスに興味があり・・・

Mule ESBを見てた。

ひょっとして、s2muleとかあるのかなとGoogleで調べたら出てきた。

http://www.mulesource.org/display/SEASAR2/Home

あれ?

ひょっとして、Mule ESB本体のほうにある?
Seasarのプロジェクトを見たけどなかったので、Mule ESB側にあるんだね。

Seasar2を意識した珍しいOSSの例なのかな?

テストを追加した

少しだけテストを書いてみた。
暇見て書いていく予定。

ドキュメントはまだかいてません。
どういった形で書けばいいか定まっていないので、着手できてません。DocBookはかなり有望なのですが、それに適したエディタがないんだよねー。

そういえば、JavaEE勉強会でkoichikさんから教えてもらったやつ、なんだったっけ?

はがゆい

うーん、Seasarメーリングリストでバッチの話題が出てました。

SpritesはデフォルトのコンテナとしてSeasar2を想定していますが、残念ながらリリースできるタイミングじゃありません。

CSVとかデータを抽出するステージ、そのデータを処理するステージ、DBか何かに永続化するステージを利用するとそれほど難しくなくバッチは作れるのですが・・・、はがゆいですね。

[Spring] Core Spring training is comming to TOKYO

久々にSpringのページにいったら、Springのトレーニングがあるってことを知った。

Pivotal Training | Pivotal

2009/2/24から4日間らしい。

シラバスはここ
Pivotal Training | Pivotal

こちらには、"Agile, domain-driven design techniques with Spring"なんてことも書いてあるね。
Pivotal Training | Pivotal

引き続き Assert

紹介したこれをプロパティかなんかで、実装切り替えられないか見てみた。

http://fest.easytesting.org/assert/wiki/pmwiki.php

即効で挫折・・・。
classをfinalにしてあるんだね。やっぱこれも作らなきゃいかんのか。

Assert

先日会社で事前・事後・不変条件のチェックについて同僚と意見交換しました。

現状は、業務アプリケーションで意識して取り入れられているところなんてほとんどないようで・・・。

プロジェクト側に動機付けを行う必要があるんでしょうね。やれ!っていうと「工数が増える」とプロジェクト側の心が折れちゃうから、「なぜ必要か」を訴えないといけないでしょうね。

で、次は実際のコード。
Javaのassertって使われてないよね。私は意識して使うようにしてたんだけど、それってコードを見たときに「あ、こういう条件があるんだね」というノートみたいに使ってた。もったいないんだけど、使おうとしたときめんどい。
デフォルトで使えないのがいけないのかなー。

そして、事後・不変がチェックしづらいこと。たぶん、今のままじゃ現実的じゃないよね。

最後にどのように記述するか。
昔はアノテーションでと思っていた。そしてJavaDocにもちゃんと記述すべきと思っていた。
まずアノテーションについては、複雑なものを書いてしまうと、なんか読みにくい気がしてるんですよね。表現力が乏しくて・・・。確かにいろいろ記述すれば事前条件のチェックくらいできそうですが、長くなる・・・。引数にアノテーションをつけるとコードとして読みにくい。
なので、こういうのはやっぱりブロック内にコードとして表現していいんじゃないかと思った。そしてその記述には『流れるようなインターフェース』で。もちろん同じこと考えてる人たちはいるようで・・・。

http://fest.easytesting.org/assert/wiki/pmwiki.php

これだと、読みやすく、ちょっと難しいチェックにも耐えられそう。欠点は無効にできないこと(調べ切れてないので、ほんとはできるかもしれないのですが)。凝ったチェックだと遅くなるので、やっぱりはずしたいよねー。

そしてJavaDocに記述。これはどうだろう・・・。文章で書くと手が止まっちゃうよね(少なくとも、日本語が下手な私は・・・)。記述のルールを設ければいいけど、上のAssertライブラリができることをカバーできる記述ルールを覚えるのは難しい・・・。なので、私はオプションかなと思ってます。まずは、「はじめることが重要」ってことで(はじめが重要だと、はじめるのにコストがかかっちゃうから)。

これってValidationにも使えそう。単純なのはプロパティに対してアノテーションで。複雑なのは流れるようなインターフェースをもったValidation。そういうのないかなー。