ここでのいくつかの質問と MVC に関するさまざまな記事を読んでいて、ペイント アプリのような GUI イベントを多用するアプリケーションにも適用できることがわかりました。
MVCが悪いものであり、その使用が賢明でない状況を誰かが挙げることができますか?
編集: ここでは特に GUI アプリケーションについて話しているのです!
ここでのいくつかの質問と MVC に関するさまざまな記事を読んでいて、ペイント アプリのような GUI イベントを多用するアプリケーションにも適用できることがわかりました。
MVCが悪いものであり、その使用が賢明でない状況を誰かが挙げることができますか?
編集: ここでは特に GUI アプリケーションについて話しているのです!
ネットワークカーネルドライバーでMVCを試しました。パッチは拒否されました。
後ろ向きに見ていると思います。MVC のようなパターンをどこに適用できるかを見るのではなく、パターンを学習し、解決しようとしている問題がパターンを適用することで自然に解決できる場合を認識することがポイントです。したがって、問題空間が自然にモデル、ビュー、およびコントローラーに分割できる場合は、MVC の適切な候補です。デザインのどの部分が 3 つのカテゴリに分類されるかを簡単に判断できない場合、それは適切なパターンではない可能性があります。
MVC は Web アプリケーションにとって理にかなっています。Web アプリケーションでは、いくつかのデータを処理し (SA では、質問の書き込み、コメントの追加、ユーザー情報の変更)、状態 (ログインしているユーザー) を持ち、多くの異なるページはありませんが、多くの異なるコンテンツに適合します。それらのページ。1 つの質問ページと 100 万の質問。
たとえば、CMS を作成する場合、MVC は役に立ちません。モデルもコントローラーもありません。装飾とメニューを含むテキストのページだけです。問題はデータの処理ではなくなりました。現在の問題は、そのテキスト コンテンツを適切に提供することです。
Tho、CMS管理者はMVCの上にうまく構築できますが、そうではないのはユーザー部分だけです。
Web サービスの場合は、REST を使用したほうがよいでしょう。REST は、明確なパラダイムであると私は信じています。
WebDAV アプリケーションも、MVC から大きな恩恵を受けることはありません。
Ruby for Web プログラミングの注意点は、Web アプリケーションの構築には Rails の方が適しているということです。Rails を使用して WebDAV サーバーまたはコンテンツ管理システム CMS を作成しようとして、惨めに失敗するプロジェクトを数多く見てきました。Rails で CMS を実行することもできますが、Drupal や Django など、タスクにはるかに効率的なテクノロジがあります。実際、Java ポータルの開発作業を検討している場合は、代わりに Drupal と Django を評価する必要があります。
サードパーティのコンポーネントをドロップしたい場合は、MVC パターンで作業するのが難しくなります。これの良い例は CMS です。
取得する各コンポーネントには「独自の」コントローラー オブジェクトがあり、モデルの「制御」を共有することはできません -> UI の受け渡し。
GUIアプリにとってMVCが本当に悪い考えであるとは必ずしも知りません。しかし、間違いなくより良い代替手段があります (また、誰の意見を求めているかによっては、間違いなくより悪いものもあります)。最も一般的なのは MVP です。説明については、こちらを参照してください: Everything You Wanted To Know About MVC and MVP But We Are Afraid To Ask .
ただし、フレームワークを使用している場合や、MVC を念頭に置いて設計されていないソフトウェアと対話している場合は、MVC を使用するのは悪い考えかもしれません。
つまり、プログラミング言語の比較によく似ています。通常、あるタスクが他のタスクよりも優れていると言えるタスクは多くありません。それは通常、プログラマーの好み、ライブラリーの可用性、およびチームの経験に要約されます。
MVC は、パフォーマンスが重要なアプリケーションでは使用しないでください。コンピューティング能力の向上にこれが当てはまるかどうかはわかりませんが、1 つの例はコール センター アプリケーションです。1 回の通話で 0.5 秒節約できれば、情報の入力と更新を時間の経過とともに節約できます。アプリのパフォーマンスを最大限に引き出すには、Web アプリではなくデスクトップ アプリを使用し、データベースと直接やり取りする必要があります。
それはいつ悪いことですか?プロジェクトにより適した別のコード構造がどこにでもあります。
MVC が「適合」しないプロジェクトは無数にありますが、それらのリストがどのように役立つかはわかりません..
MVC が適合する場合はそれを使用し、適合しない場合は別のものを使用します。
MVC と ORM は冗談です....アプリがデータベース アプリではない場合、またはアプリ データベースにとらわれないようにしたい場合にのみ適切です。ストアド プロシージャをサポートする RDBMS を使用している場合は、それが唯一の方法です。ストアド プロシージャは、経験豊富なアプリケーション開発者に推奨されるアプローチです。MVC と ORM は、それらのテクノロジに関連する製品またはサービスを販売しようとしている企業 (たとえば、VS を販売しようとしている Microsoft) によってのみ推進されています。Java と C# の学習に時間を無駄にするのはやめて、代わりに本当に重要なこと、Javascript と SQL に集中してください。