MVCに関するいくつかのことを読みましたが、MVCをいつ使用するべきか、いつ使用すべきでないのかはまだわかりません。私は「のようなことを言う明確な例を探していますこれを開発している場合は、このようにMVCを使用する必要があります「および」これを開発している場合は、MVCを使用しないでください。「私が見た例のほとんどは、すでにすべてを実装している複雑なフレームワークに依存しており、フレームワークを学習し、実際に何が起こっているのかを理解するために多くを使用する必要があります。UIビジネスロジック「マーケティング用語のように聞こえます-たとえば、単語」代わりに、ビューはプレゼンテーションモデルに直接バインドします" この投稿。 で使用されています
MVCは概念であり、誰もがそれを最もよく知っているように感じているので、影に潜む危険性を認識していますが、多くの変数が含まれている可能性があり、誰もが持つことができるので、誰もそれを正確に使用する方法を本当に知りませんプロジェクトをモデル、ビュー、コントローラーに分割する方法に関する異なる視点。理論はたくさんありますが、明確な例はほとんどありません。私が探しているのはそれを行うための「最良の」方法ではないため、これは主観的なものと見なされるべきではありません。別のものを探しています シンプルな 最適なアプローチである私自身で決定することを可能にする実装。
簡潔に:さまざまな状況でMVCを使用する賛否両論を提示し、読者が概念を理解するのに役立つ明確な例を提供する優れたオンラインリソースは何ですか?
IMO、最良の例はコードおよび/またはスターターキットです。
Rob Conery には 多数の投稿 があり、ASP.NET MVCでMVCサイトを作成する方法を説明しています。これらにはそれぞれ ビデオチュートリアル があり、ブログ投稿のディスカッションを実行します。
公式の ASP.NET MVC サイトには、いくつかの ビデオ投稿 、スターターキット(- here 、 here および- こちら )および 追加のソース .
IMO、MVCはWebサイトに行く方法です。専門用語やマーケティングのすべての話をすることなく、コードを本当にニースの別々の定義されたセクションに分解します。これらの各セクションはテストすることもできます。システムのある部分に触れても別の部分が壊れないことを知っているので、開発プロセスの保護に役立ちます(最新の変更後にすべてのテストが合格するため)。
あなたがチェックアウトする必要がある他のブログ:
Web用のMVCを意味すると仮定すると、次の60行のコードよりも簡潔なものを見つけるのは難しいでしょう。
http://code.google.com/p/barebonesmvc-php/
特に、sendResponseの「テンプレートメソッド」は、基本的に次の2つのメソッド呼び出しで構成されています。
applyRequestToModel
applyModelToView
私が見た中で最も評価の高いものの1つは、 7日間でMVCを学ぶ 投稿です。もちろん、それはそれでいいのですが、 Pro ASP.NET MVC 4 のような本と比べるとまだ見劣りします
さまざまなプロジェクトでこれをあらゆる方法で行ってきました。 1つの大きなPHPスクリプトでアプリケーションのすべてをコーディングすることから(OKが始まったばかりの小さなPHPスクリプトとして始まりました)。 XMLとテンプレートコーディングの海でJavaコードの5O行が失われた最新の最高のSpring/Freemarkerフレームワークを使用する。
フレームワークなしでMVCを実行できますが、PHPではおそらくこれが最も簡単な方法です。すべてのナビゲーションコードが、ナビゲーションロジックのみを含む単一のスクリプトに含まれている場合、MVCを実行しています。
QDP(Quick Dirty Page)以外の場合は、何らかのMVCを使用することをお勧めします。ビジネスで「フランス語版がありますか」または「素晴らしいプログラムですが、データをxxxxxデータベースに保存したい」と言われた場合に何をする必要があるか想像してみてください。
ビューロジックとビジネスロジックを明確に分離するのは難しい場合がよくあります。 JSFとJSPの例を少し読んでいると、使用中のMVCの明確な例を見ることができます。ビューをビジネスロジックから完全に分離します。
MVCに関する良い情報をお探しの場合は、 http://en.wikipedia.org/wiki/Model-view-controller をお勧めします。
これは重要なトピックであり、異なるロジックを分離するというアイデアが本当に好きです。それは、プログラマーとプロジェクトで作業している他のすべての人を助けます。