2009-07-23 8 views
2

いくつかの小規模なサイトでCodeigniterやKohanaなどのPHPフレームワークを使用していたので、大規模なプロジェクトにはまだMVCが適用できるのかどうか、またそうであればクリーンなコードを維持するためにどのような予防策を講じなければならないのだろうか。これを防ぐために大規模なサイトはどのようなプラクティスを使用しますか? AmazonやFlickrのコードはMVCやその一部を使用していますか?特定の問題を抱えて、大きなプロジェクトでMVCを実装する最良の方法を示すガイドがありますか?大規模なプロジェクトでMVCが適用されなくなるのはいつですか?

- タンジェント -

のKohanaを使用して、現在のプロジェクトで、私は私のモデルが持っている必要がありますどのような役割疑問を始めました。しばしば、モデルは、私が構築しようとしているオブジェクトの小さな部分だけを記述することができます。つまり、ユーザーのオブジェクトが必要なので、Users.modelを使用してUsersテーブルからユーザーを抽出します。しかし、各ユーザーには在庫にいくつかの項目がありますので、私もUsers_Inventory_Modelを使用する必要があります。しかし、各インベントリアイテムには、コントローラに1人のユーザを構築すると複数のモデルにアクセスする必要があることがわかるまで、他のテーブルも関連付けられています。今、多くのコントローラでこれをやっていると想像してください。突然、乱雑で冗長なコードと非常に太いコントローラがあります。

これは、多分私が、恐ろしい仕事の大半を処理するライブラリを持っているべきだと私に考えさせました。そうすれば、私はUsersライブラリを持ち、関連するすべてのユーザーデータをロードし、更新、削除などのロジックをほとんど実行できます。これはほとんどのMVCプロジェクトの進化ですか?ライブラリがモデルとのやりとりのほとんどを行い、コントローラはライブラリを呼び出してビューのデータを準備します。とにかく、これは私がMVCに関して持っていた質問の1つに過ぎません。これは私がオンラインの答えを見つけることができなかったことです。

+0

Well、stackoverflow.comはmvc :-)で構築されています – nos

答えて

5

実際、これらのMVPとMVCが本当に輝く大きなプロジェクトです。すべてのソフトウェア設計パターンは、ソフトウェアの複雑さに対処するために(共通の語彙を確立することに加えて)「作成」されています。したがって、適切に使用され、MVCは大きなプロジェクトであなたに大きな助けになるでしょう。

小さなアプリとは対照的に、マウスのみのアプローチでハッキングすることはできますが、適切な分離がないか、SOLIDなので、サポートするのは難しいです。

+0

PPPの本はリンク先の記事にリンクされていますか、それとも同等の資料をオンラインで見つけることができますか? – Brad

関連する問題