わかりやすい配置

Webアプリとかでのパッケージ構成って場所にもよるけど、アクションごと、アクションフォームごとにパッケージが分かれてる場合って多いよね?

  • /action
    • /HogeAction
    • /HageAction
  • /form
    • /HogeForm
    • /HageForm

Strutsのconfigを見ながらそれぞれを行き来したりすると非常に疲れるわけだが、最近はアノテーションでその負担は減ってるような気もする。でも、行き来が面倒だったりするのには変わらない。見通しも悪い。

一方でこういう構成にするところもある。

  • /hoge
    • /Action
    • /Form
  • /hage
    • /Action
    • /Form

パッケージが動かないから非常に理解がしやすい。リクエストの受け取り用なんて共有することはないし、共有したいなら継承すればいいだけ。特定の画面に張り付いたビューヘルパー的なものもここに気軽における。パッケージinfoでこの階層のドキュメントを詳細にかけるし。


こういう配置を換えるだけで非常に分かりやすくなると思うんだけれども、なぜか後者の構成をとる現場はこの5年でものすごく減った気がする。昔は後者が圧倒的に多かったけど、IDEのサポートが無い時代だったからなのかはわからないけど。IDEのサポートが手厚い今でもクラスが増えてくるとスクロールさせていくのがだるすぎる…と思う人はいないのかな?


関係性は無いけど同じ種類のクラスがまとまったほうがいいのか、1つの処理のためにまとまったほうがいいのか。オブジェクト指向言語としてはどーなんでしょ。

もっともJSF以降のフレームワークはフォームとロジックが同一なのがめずらしくありませんけど。