Clickが却下されてしまったので、仕方なくStrutsでガリガリとコーディング。
イベント駆動のほうがいいなー…と思いながら、それなりに設定ファイルを使わずにすんだ。
やったのは
- やっぱりActionは極力使わない
- Validatorを使わない
- 例外のハンドラ使わない。
- forwordにはjspのパスを直渡し。
- ワイルドカードを使ったActionの設定を使う
- Mapを実装した単一のFormで、すべての入力をまかなう
- セッターインジェクションにして、セッターを親クラスで全部定義。
- リクエストパラメータは業務ロジックにフィールドインジェクション(WebWorkぽく…ってよく知らないけど)
コード量へらせたのはJSP2.0使えたのも大きいかも。
「Validationを業務ロジックでやっても何とかなる」ことと、「MapみたいなFormはわりかし便利(DynaActionFormはイマイチだけど)」というのは発見かも。Validationを業務ロジックでやると、DB使った入力チェックが自然に書けた。
JDK5.0は初めて業務で使った。ジェネリックのありがたみはあんまり…。どうも、コードが汚くなる害の方が大きいような。<? extends T>みたいな書き方がまだきちんと理解できず。
アノテーションはあんまり準備できなかったんで活用できず。JUnitのアノテーションはなんだかなぁ(特にTestSuiteのアノテーションとか)。Eclipse3.2でJUnit4使ってたら、Eclips3.1使ってたメンバーが使えなくて、ちと困った。
Enumは、C#みたいに実体を整数として定義できるとよかったなぁ…。
static importとオートボクシングもバグの温床になりかねないので使いどころが微妙だった。Objectの戻り値にtrue/false/その他を返せるのは、面白く使えたけど。
Validationで関数プログラミング的に
とか書いてると、果たして分かりやすいコードなんだろうか…と思ったり。
Object validete() {
return isBlank(value) || (isInt(value) && maxValue(value, 100));
}
いまさらながらcssが便利だと思ったり。Clickがだいぶ参考になった。
Pico+Rhinoは便利だと思ったり。ComponentMonitorでアスペクトできる!と思ったらそうでもなかったり。
そろそろClick使いたいなぁ…・