業界でMVCパターンは多く使用されていますか?すべての誇大広告は何ですか?[閉まっている]


16

私は学生ですが、すぐにソフトウェア業界に参入することを願っています。MVCソフトウェアパターンについて多くの誇大宣伝があるようです。PHPフレームワークは多くの場合MVCであることに気づきましたが、Web以外の言語についてはどうでしょうか。修士論文(C ++)では、MVCパターンを選択しました。これは、ロジックとユーザーインターフェイスをうまく分離しているためです。

業界では多く使用されていますか?もしそうなら、主な理由は何ですか、他の競合する人気のあるデザインは何ですか?


13
MVCは、単に関心の分離の一般的な実装です。重要なのはSoCであり、MVCそのものではありません。
レイノス

1
特定のアプリケーションにより適したMVCの代替案/バリエーションについては、Martin Fowlerの「エンタープライズアプリケーションアーキテクチャのカタログ」を参照してください。martinfowler.com
eaaCatalog

3
また、「MVC」というラベルが付いているものの多くは実際にはMVCではなく、(新しい)多層アプリケーションモデルに従うことに注意してください:データストレージ-ロジック-プレゼンテーション(とにかく私見では、より理にかなっています)。
-tdammers

MVCは、Webプログラミングよりも前のものです。
ジェレミー

回答:


6

MVCは、そのドメインにとって非常に便利なパターンであるため、多くの誇大広告と使用を獲得しています。

MVCは懸念の分離を奨励します。これが適切に行われれば、開発を簡素化できます。データストアに含まれるデータを表示および/または変更するアプリケーションにはMVC機能がありますが、分離することはできません。コンポーネントを分割しないと、懸念事項間に望ましくない結合が生じる可能性があります。

MVCを使用すると、コントローラーまたはモデルを変更せずに、アプリケーションのフロントエンドインターフェイス(ビュー)を比較的簡単に変更できます。これは、スマートフォン、Web、および1つ以上のアプリケーションからのアクセスを許可する必要がある場合に望ましい場合があります。

大規模なチームの場合、MVCを使用すると、開発者はいずれかのレイヤーで作業を行うことができ、他のレイヤーで多くのスキルを必要としないため、リソースをより適切に使用できます。リソースを調整するオーバーヘッドに応じて、これはより効率的です。


12

はい、多く使用されています。iPhone / iPadアプリケーションはすべてMVCとして設定されます。最近、多くのasp.net MVCアプリを見てきました。

MVCを使用すると、今後の柔軟性が高まり、開発者が機能ごとに個別のコードを作成するようになります。保守が容易になります。


AppleのCocoaフレームワーク(MacOS Xで使用)は、1980年代後半にさかのぼるNextStepの進化版です。NextStep、Cocoa、およびCocoa Touch(iOSで使用)はすべて、MVCを頻繁に使用します。
カレブ

4

現時点では流行しています。

誇大広告の力を過小評価しないでください。すぐに、誰かがより新しく、より光沢があり、理解しやすい何かを思い付くでしょう、そして誰もがMVCをすべての悪の根として非難します(ウェブフォームに起こります)、またはそれを使用する非常に多くの人々がより多くのグリズルドベテランになるでしょう「管理ブル* *」の事(XMLに起こる)としてそれを非難します。または、MVCは「解決する必要がある超難しい問題に対して十分な柔軟性がない」ため、他のパターンへの移行があります(静的型言語対動的言語)。

結局のところ、MVCは、Webプログラミングが引き起こす多くの問題に適したフレームワークアプローチです。しばらくは使用されますが、ほとんどの人がそれを使用している理由は、流行語に準拠するためだと思います。

編集

注:MVCパターンは何年も前から存在しており、asp.net MVCより前のフレームワークで使用されてきたことをよく知っています。現時点ではかなり人気があると言っているので、他のアプローチよりも多くのプレスを得ています。私はすべての個人プロジェクトにMVCを使用しており、商用プロジェクトでもMVCを使用しています(私は.net開発者です)。

これは暴言ではありませんでした。


7
-1:「At the Moment」。たとえば、SmalltalkやJava / Swingの始まりをMomentのテクノロジーとして考えない限り、MVCはそのためには少し古すぎます。
ケプラ

4
「現時点」を除き、かなり正確です。MVCは、Javaの世界を除いて、私が知っている最近までほとんど使用されていませんでした。それ以外の場所では、Railsが普及するまで使用されませんでした。
ウェインモリナ

4
私が遭遇したほとんどのGUI-Frameworks(非HTML)はMVCを使用していましたが、過去10年間は​​「ほとんど使用されていなかった」ようです。
ケプラ

1
実際、MVCはすでに宇宙の一部でMVPによって誇大宣伝されています。
トムアンダーソン

3
個人的には、ASP.NET MVCがコンセプトになるずっと前からWebformが嫌いでした。ほとんどの場合、実際には最良の選択肢であるため、時々人気があります-はい、それらはより新しく強力なものに置き換えられるかもしれませんが、それでは何ですか?それは進歩であり、誇大宣伝ではありません。
アーロンノート

3

私の経験から、それは必要以上に使用されていません。いくつかの選択肢よりもはるかに優れたモデルですが、ここ数年で大々的に宣伝されています。そのため、人々がMVCに変換することを恐れているか、MVCが将来の作業に使用することを恐れているという多くの遺産があります。


1

Stack ExchangeファミリーはすべてMVCで実行されていることがわかると思います


素晴らしい、それを知らなかった+1
エール

1

.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チームはフレームワークへの取り組み)。

とはいえ、万能薬/銀の弾丸ではなく、他のフレームワークと同様に、使用する場合と使用しない場合があります。結局のところ、人々がすべてを解決するためにそれを使用しないことを願っています:あなたの唯一のツールがハンマーである場合、すべての問題は釘のように見えます。


1

MVCは非常に単純な概念であるため、マーケティング資料で目立つようにいくつかの特定のフレームワークから誇大宣伝を受けているため、歴史のほんの一瞬です。また、ソフトウェア開発で浮かび上がってきた多くの優れた慣行に夢中になります。これは、HTTPなどの疑似ステートフル開発にdoubleを適用します。そのため、Webの世界で使用されている真に異なる「パターン」を1つだけ知っています。これは、ASP.Net WebFormsイベントベースのモデルです。

正直に言って、論文全体が十分にあることに少し驚いています。

しかし、あなたの質問に答えるために。WebFormsはWebパイの狭いスライスであり、ほとんどがイントラネットビジネスアプリケーションのホームです。実際のパターンのないスパゲッティコーディングされたページは、おそらくベン図のかなりの部分を占めていますが、フレームワークであるものはほとんどMVCの影響を少なくとも受けているため、短い答えはYESになります。


@geroge:答えてくれてありがとう。心配しないでください。私の論文に含まれているソフトウェアはMVCを使用しています。実際にはMVCではありません!
エール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.