tristanの日記: MVCのビューを2層に分離
僕のテンプレートは、MVCモデルのViewを2層に分けることべきだという提案であることに気付いた。2層に分けて、デザイナーとプログラマーが編集するファイルを分離する。
そうすると、双方が相手に対して対等な立場で作業ができる。つまり、
・デザイナーの視点から見ると、デザインの中に動的部分を埋め込む。
・プログラマーの視点から見ると、動的部分の周りにデザインを肉付けする。
と考えて作業ができる。
今までは、作業の流れはデザイナー→プログラマーであるという考えに、あまり疑問を持たれたことがなかった。しかし、とくに保守性の面で、これでは問題がある。結局細かいデザインの作業がプログラマに押し付けられる結果になっていた。
処理の機能の分け方という視点でも、Viewを2層に分けるのは合理的だと思う。
J2EEのMVCモデルは、モデルにビューの生成のための処理の一部まで任せようとしたため、モデルの処理の記述が煩雑になりすぎていた。モデルはビジネスロジックであるデータ処理のみに専念させるべきである。処理結果の表示に関するロジックの記述は別ファイルに分離するほうがよく、それは煩雑で凝縮度が小さなものだから、インタプリタ言語での処理が適切なものだ。
そして、表示のロジックと、表示のデザインも分離するべきだ。JSPの中にはコードを書かないほうがいいというのは、ナンセンスだとずっと感じていた。表示のロジックのタグ化などは、そんなに美しい解だと思えなかった。これらの疑問は、すっきりと解決できた気がする。
僕が先週から書いていることは、単なるJSPやJakarta Velocityの代替品の1提案ではなく、WEBアプリケーションの主流のアーキテクチャの改善案であると思う。しかも、かなりまっとうな提案なのではないかと思うようになった。
MVCのビューを2層に分離 More ログイン