PropertyInterTypeを使ってみる
S2Containerに機能追加されるInterTypeを利用したPropertyInterTypeを使ってみました。PropertyInterTypeの用途は、基本はS2JSF/S2/S2Daoで開発した場合のActionとLogicに使うと思っています。
#DTOに適用する話題も出ていますが。
Logicに適用する
LogicではContainerによってインジェクションされるDaoに対して適用します。
どれだけコード量が減るか
手元にあるユーザ管理アプリケーションにPropertyInterTypeを適用する場合としない場合で計測してみました。このユーザ管理アプリケーションはS2JSF Exampleにある従業員管理システムと同様の機能を持ったもので、検索、一覧、追加、編集、表示、削除を行います。
PropertyInterTypeを適用しない場合
ソースのライン数:2057 Line
PropertyInterTypeを適用した場合
ソースのライン数:1756 Line
減ったコード量
というわけで、計算すると15%のソースコードを減らすことができました!
何が嬉しいか
コード量が減ることで何が嬉しいかというと、、、
一見どうでも良いことですが、これは個人的にはかなり重要です。ソース上意味を持たないsetter/getterが減ることで、ソースが1画面に納まるようになり、ソースの見通しがよくなります。つまり保守し易い。(EoM?)
ソースを見ている時に、スクロールバーで下にソースがあるとことが分かると、どうしても見ることになります。
そんなことに意識を使うのではなく、意味あるソースに集中したいですからね。
#そういえば、昔むかしのBasic時代に1画面ゲームプログラムというのがありましたね。あれ好きでした。
- ソースコードの規模が減ると試験項目密度やバグ密度も変わってくる。
テスト対象でないものが冗長に存在することは悪でしょう。(EoT?)
補足
実案件のアプリケーションでは、このユーザ管理アプリケーションよりももっと複雑ですから、DTOやLogic、Daoの数もずっと多くなります。そうなると15%と言わず、もっとコード量を削減できるのではないでしょうか。