PropertyInterTypeを使ってみる

 S2Containerに機能追加されるInterTypeを利用したPropertyInterTypeを使ってみました。PropertyInterTypeの用途は、基本はS2JSF/S2/S2Daoで開発した場合のActionとLogicに使うと思っています。
 #DTOに適用する話題も出ていますが。

Actionに適用する

 ActionではS2JSFによって呼ばれることになるDTOやフィールドに対してと、ContainerによってインジェクションされるLogicに対して適用します。

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%と言わず、もっとコード量を削減できるのではないでしょうか。