私は学生ですが、すぐにソフトウェア業界に参入することを願っています。MVCソフトウェアパターンについて多くの誇大宣伝があるようです。PHPフレームワークは多くの場合MVCであることに気づきましたが、Web以外の言語についてはどうでしょうか。修士論文(C ++)では、MVCパターンを選択しました。これは、ロジックとユーザーインターフェイスをうまく分離しているためです。
業界では多く使用されていますか?もしそうなら、主な理由は何ですか、他の競合する人気のあるデザインは何ですか?
私は学生ですが、すぐにソフトウェア業界に参入することを願っています。MVCソフトウェアパターンについて多くの誇大宣伝があるようです。PHPフレームワークは多くの場合MVCであることに気づきましたが、Web以外の言語についてはどうでしょうか。修士論文(C ++)では、MVCパターンを選択しました。これは、ロジックとユーザーインターフェイスをうまく分離しているためです。
業界では多く使用されていますか?もしそうなら、主な理由は何ですか、他の競合する人気のあるデザインは何ですか?
回答:
MVCは、そのドメインにとって非常に便利なパターンであるため、多くの誇大広告と使用を獲得しています。
MVCは懸念の分離を奨励します。これが適切に行われれば、開発を簡素化できます。データストアに含まれるデータを表示および/または変更するアプリケーションにはMVC機能がありますが、分離することはできません。コンポーネントを分割しないと、懸念事項間に望ましくない結合が生じる可能性があります。
MVCを使用すると、コントローラーまたはモデルを変更せずに、アプリケーションのフロントエンドインターフェイス(ビュー)を比較的簡単に変更できます。これは、スマートフォン、Web、および1つ以上のアプリケーションからのアクセスを許可する必要がある場合に望ましい場合があります。
大規模なチームの場合、MVCを使用すると、開発者はいずれかのレイヤーで作業を行うことができ、他のレイヤーで多くのスキルを必要としないため、リソースをより適切に使用できます。リソースを調整するオーバーヘッドに応じて、これはより効率的です。
現時点では流行しています。
誇大広告の力を過小評価しないでください。すぐに、誰かがより新しく、より光沢があり、理解しやすい何かを思い付くでしょう、そして誰もがMVCをすべての悪の根として非難します(ウェブフォームに起こります)、またはそれを使用する非常に多くの人々がより多くのグリズルドベテランになるでしょう「管理ブル* *」の事(XMLに起こる)としてそれを非難します。または、MVCは「解決する必要がある超難しい問題に対して十分な柔軟性がない」ため、他のパターンへの移行があります(静的型言語対動的言語)。
結局のところ、MVCは、Webプログラミングが引き起こす多くの問題に適したフレームワークアプローチです。しばらくは使用されますが、ほとんどの人がそれを使用している理由は、流行語に準拠するためだと思います。
編集
注:MVCパターンは何年も前から存在しており、asp.net MVCより前のフレームワークで使用されてきたことをよく知っています。現時点ではかなり人気があると言っているので、他のアプローチよりも多くのプレスを得ています。私はすべての個人プロジェクトにMVCを使用しており、商用プロジェクトでもMVCを使用しています(私は.net開発者です)。
これは暴言ではありませんでした。
.NETは業界で多く使用されているため、ASP.NET MVCはWebアプリケーションで大きな注目を集めています。
Microsoft Webアプリケーションは、Classic ASPからWeb Formsに基づくASP.NETに進化しました(VB6 Win Forms開発者のスキルをWebの新しいフロンティアに簡単に翻訳する必要があったため)。
残念ながら、Webフォームは状態ベースであり、HTTP(Webのベース)はステートレスであるため、ビューステートのようなものによる厄介な回避策がたくさん必要でした。
ASP.NET MVCにより、WebForms開発者は、優れたSoCを備えたWebフレームワークに変換する必要があるスキルをテストできます(WebFormsはテスト可能ではないため、MVCチームはフレームワークへの取り組み)。
とはいえ、万能薬/銀の弾丸ではなく、他のフレームワークと同様に、使用する場合と使用しない場合があります。結局のところ、人々がすべてを解決するためにそれを使用しないことを願っています:あなたの唯一のツールがハンマーである場合、すべての問題は釘のように見えます。
MVCは非常に単純な概念であるため、マーケティング資料で目立つようにいくつかの特定のフレームワークから誇大宣伝を受けているため、歴史のほんの一瞬です。また、ソフトウェア開発で浮かび上がってきた多くの優れた慣行に夢中になります。これは、HTTPなどの疑似ステートフル開発にdoubleを適用します。そのため、Webの世界で使用されている真に異なる「パターン」を1つだけ知っています。これは、ASP.Net WebFormsイベントベースのモデルです。
正直に言って、論文全体が十分にあることに少し驚いています。
しかし、あなたの質問に答えるために。WebFormsはWebパイの狭いスライスであり、ほとんどがイントラネットビジネスアプリケーションのホームです。実際のパターンのないスパゲッティコーディングされたページは、おそらくベン図のかなりの部分を占めていますが、フレームワークであるものはほとんどMVCの影響を少なくとも受けているため、短い答えはYESになります。