ドキュメント
で、なぜSpring見にいったのかというと、Spritesのドキュメントの参考になるかなって?
HTMLのソースを見るとDocBookってのを使ってるらしい。
これかな?
The DocBook Project
ちょっと調べてみよう。
[Spring] Core Spring training is comming to TOKYO
久々にSpringのページにいったら、Springのトレーニングがあるってことを知った。
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。そういうのないかなー。