テストパターン勉強会

久しぶりの勉強会。昨年度はいまいち低調だったので、今年度はがんばろう。TDD、Java Testing Patterns。

DIコンテナ

DIコンテナは過剰に使用されているのではないか。クラスの単体テストは楽だが結合テストが大変。設定ファイル地獄。コードが読みにくくなる。コンポーネント間の呼び出しなど疎結合であるべき部分ではDIコンテナは有効。しかし、本来、密結合すべき部分ではコード上に依存関係を記述するほうがよい。

ステートレス

ステートレスにこだわるのはなぜか? あまりこだわりすぎると単なる関数オブジェクトになってしまう。DOAが好きな人には受け入れやすいかも。関数型言語のような事をやりたいのか?
ステートレスとは何をさしているのか。Webアプリケーションではプレゼンテーションレイヤで画面制御にかかわるステートを保持する必要がある。ドメインレイヤはステートレスにしたいのはわかる。しかし、その場合のステートレスとはトランザクションをまたいだ非永続ステートを持たないということであり、オブジェクトがステートを持たないということではない。トランザクション内ではメソッドをまたぐステートが必要。オブジェクトがステートを持たないということは、ステートを引数で渡すか、あるいはデータの容器のようなオブジェクトを使うことになる。

Software Factory

とりあえず名前が駄目。名前だけで多くの人に避けられるのではないか。DSLはまだよくわからない。デプロイメントの例は、単なるツールにすぎなくて、あえてDSLという言葉を使うようなものではないんじゃないか。