質問: MVCモデルに則り、Webアプリケーションを作成しようと試みております。 多くの情報をまとめますと、以下のように考えられます。 > > ・ビジネスロジックはModel側に記述する > > ・ViewではModel側のデータを参照する形にする > > ・ControllerはModelやViewを介在する形で処理を割り振る > > > また、エビデンスのない情報ではございますが、以下の情報もございます。 > > ・Viewでビジネスロジックを持たせる > > ・Viewは画面出力を軸とした役割のほかに、画面を介さずとも出力するならばデータ整形を担う > > > MVCモデルに関して現時点においてはこれが一番正しそうだ、といった情報やアドバイス・知見はございますでしょうか?
回答: MVCモデルは非常に抽象化された(一般的な)モデルなので、どこにどのような処理機能を持たせるのかといった構築するシステムの個々の(様々な)事情が影響するような事項に関して、「一番正しそう」などという知見は存在しないと考えるべきです。 「一番正しそう」が存在しうるのはシステムの要求仕様が固まってからです。 要求仕様が判らない(そもそもの問題が設定されていない(少なくとも質問では明らかでない))状態では、何が正しいかも判りませんから。 また、処理機能(近視眼的ビジネスモデル)をM,V,Cのいずれか一か所に置かなければならないという考えも改めるべきです。M,V,C,いずれもコンピューティングシステムで実現する訳ですから、適切な機能を適切なモジュールで実現するのがベストプラクティスかと思います。 ビジネスロジック (business logic) のような解説記事をいろいろ読んでみることをお勧めします。