答があったりなかったり。

入門 オブジェクト指向設計―変更に強く生産性が高いシステムを

週末に、本屋で見つけたので買ってみたり。ポインタのポインタって感じの本です。
akonさんが監修をやってると言う話は、ちょっと前から知っていたので、
気になっていたのですが、読み易く良い本だと思います。設計の部分までは


記述のネタ元になっている本が、
記述している部分にポインタとしてあるのが非常に良いと思います。
これをちゃんとやってる本って意外と少ないんじゃないかと思います。


問題提起するだけで無く、その問題の答えの概観について書いてあるので、
この本を読むともう少し勉強してみようかな…と言う気になり易いと思います。
システム開発における問題に対して漠然とした意識はあるものの、
それをキチンと説明、もしくは解決出来る程では無い人が読むと良いかな…。
要は、火消しがメインの業務って方は、是非読んで欲しいな…と。


後半100ページ位は、所々にコード片が出てくるのですが、ちょっといただけない感じかなぁ…と。
コードの部分を書いていた時期が良く分かりませんが、Seasar2をDIコンテナとして使って無いです。ハイ。
それから、業務ロジックがステートレスじゃないです。
ステートレスじゃない業務ロジックを呼び出すからなのか、
まさか、Actionのexecuteメソッドの中で、S2ContainerFactory#createを呼び出すとは…。
S2ContainerがまるでInitialContextの様に使われているのを見るとゲンナリです。
業務アプリケーションのコードの中で、S2Container#getComponentを呼び出しちゃいけません。
これじゃ、依存性を注入してません。


Seasar2フレームワークとして使うメリットの1つとして、
量産され易い種類のコード(Actionとか)が、DIコンテナに対して依存しない。
事が既存のフレームワークと根本的に違い、且つ、理解が難しい所だと思います。
その部分に関する説明を放棄したのか、本の執筆時点では理解出来ていなかったのか、
よく分かりませんが、非常に残念です。


もし、改訂する事があれば、その部分を是非直して欲しいな…と思う次第です。