MVC-問題または解決策?

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌オリジナル
2025-02-20 12:00:20131ブラウズ

MVC - a Problem or a Solution?

リポジトリ、アダプター、MVC、ソリッド、RTFM…Webは、PHP開発者に常にこれらの用語をスローしています。 私はそれにうんざりしています。口述で十分です。子猫を見せて!

キーポイント:

  • MVCは、Webアプリケーションの複雑さのための魔法の弾丸ではありません。 清潔で再利用可能な分離されたコードは本当の解決策であり、それは開発者次第です。
  • MVCは、他のパターンと同様に、ツールです。 よく使用され、柔軟性と使いやすさを促進します。しかし、それは恐ろしく使いすぎて誤用されています。
  • 盲目的にパターンを適用しないでください。彼らの長所と短所を理解する。ジョブに適したツールを選択してください。

ソフトウェアは問題を解決します:

問題を解決するためのソフトウェアを構築します。 コードの各行は、世界を救うか、かわいい子猫を表示するかにかかわらず、特定のニーズに対応しています。 その目的を尊重します。

これらの問題の解決策は、より大きなシステムに結合されます。 しかし、どのようにしてソリューションが効果的で理解しやすく、保守可能であることを保証するのでしょうか?

「ワンサイズはすべてに適合する」神話:

MVCは、多くの場合、Webアプリケーションの唯一の実行可能なソリューションとして提示されます。 コミュニティはしばしばそれを使用していない人を批判し、

MVCがおそらく優れているとはめったに説明しません。 なぜMVCの誇大広告なのか? 一般的に引用された利点には、次のものが含まれます

コードの複雑さの減少

コードの再利用性
  • 柔軟性の向上
  • デカップされたコード
  • しかし、これらの主張は真実ですか?他のパターンにはこれらの利点がありませんか? いいえ
  • MVCは、複雑さ、再利用性、柔軟性、またはデカップリングを本質的に解決しません。
開発者

クリーンで柔軟な、再利用可能なコードを書き込みます。 MVCは、

を使用するためにjQueryが必要な以上に必要ではありません。 優れたソフトウェアはMVCのずっと前に存在し、それなしではまだ構築され続けます。

MVCはパターンであり、万能薬ではありません。 それは、アダプター、工場、シングルトン、モジュール、通訳者、オブザーバーなど、多くの1つです... document.getElementById()パターンは助けてください、彼らは解決しません:

パターンは、より良いコードを書くのに役立ちます。これらはベストプラクティスを表していますが、ベストプラクティスは問題によって異なります。ボートは、畑を耕すのではなく、水道旅行に最適です。

各パターンには長所と短所があります。工場のパターンはオブジェクトの作成に優れています。モジュールパターンは、堅牢なモジュールサポート(JavaScriptなど)を欠く言語でコードを構成するのに役立ちます。オブザーバーのパターンは、イベント処理で輝いています。 MVCは、プレゼンテーション、データ、ロジックの分離に役立ちます MVCの過剰使用は、PHP Webアプリケーションの普遍的なソリューションであるという誤った信念に由来しています。 リジッドルールが登場しました:データベースの行、薄いコントローラー、テンプレートエンジンをミラーリングするモデル...その後、「脂肪コントローラー」、およびHMVC、MVA、MVP、MVVM、PACの増殖...

MVC:新しいシングルトン(またはIE8):

MVCはその誤用だけではありません。 キースが指摘しているように、シングルトンのパターンは、グローバルの知覚された悪を避けるために過剰に使用されており、Global::getInstance()->var$globalVar

パターンはツールであり、開発者は職人です:

パターンは貴重ですが、慎重かつ思慮深く使用します。 パターンを誤用する開発者ほど悪いことはありません

ホイールを再発明しないでください。 多くのスマートな開発者は、あなたの前に同様の問題に取り組んできました PHPでのデータベース統合に苦労していますか? MVCまたはマルチ層アーキテクチャが役立つ場合があります。 怠zyなロードの問題? シングルトンが適切かもしれません。 オブジェクトの作成手間? 工場のパターンが役立ちます。 サービス間通信の問題? アダプターはあなたの友達です。

結論:

さまざまなパターンがさまざまな利点を提供します。問題に基づいて賢明に選択します。 単一ページのアプリケーションにMVCを使用している場合は、削除してください。

パターンがあなたと一緒にあるかもしれません!

MVCおよびPHPフレームワークに関するよくある質問:

(このセクションは、MVCおよびPHPフレームワークの適切な概要であるため、ほぼ同じままです。)

既存のFAQセクションは、異なるフレームワークの比較を含むPHPフレームワークのMVCの包括的かつ正確な説明を提供します。さまざまなプロジェクトタイプに適しています。 ここには変更は必要ありません。

以上がMVC-問題または解決策?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。