ホームページ >バックエンド開発 >PHPチュートリアル >MVC-問題または解決策?
リポジトリ、アダプター、MVC、ソリッド、RTFM…Webは、PHP開発者に常にこれらの用語をスローしています。 私はそれにうんざりしています。口述で十分です。子猫を見せて!
キーポイント:
ソフトウェアは問題を解決します:
問題を解決するためのソフトウェアを構築します。 コードの各行は、世界を救うか、かわいい子猫を表示するかにかかわらず、特定のニーズに対応しています。 その目的を尊重します。これらの問題の解決策は、より大きなシステムに結合されます。 しかし、どのようにしてソリューションが効果的で理解しやすく、保守可能であることを保証するのでしょうか?
「ワンサイズはすべてに適合する」神話:
MVCは、多くの場合、Webアプリケーションの唯一の実行可能なソリューションとして提示されます。 コミュニティはしばしばそれを使用していない人を批判し、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 サイトの他の関連記事を参照してください。