私は約50-55のコードファイルを持つPHPアプリケーションを持っています。コードの最大量を持つファイルには、約1200行のコード(スペース、タブ、複数の改行が含まれています...)があり、残りのコードファイルはこれよりも比較的小さくなっています。mvc/oopと比較して、スパゲッティのPHPコードのパフォーマンスとスケーラビリティ?
ほとんどすべてのファイルのアプリケーションコードは、純粋なPHPインクルードファイルであるいくつかのファイルを除いて、html、sql、およびphp(あなたがスパゲッティと呼ぶもの)の組み合わせです....たとえば、他の多くの場所で必要でした。
私は、このアプリケーションをmvcタイプのアーキテクチャにリファクタリングすることをお勧めします。
mvcアプリケーションでは、メンテナンスの容易性、再利用性、開発の容易さなどの利点がありますが、スケーラビリティとパフォーマンスについては特にこの場合はどうでしょうか?
私の仮定は、これは小さなアプリケーション(私はそう信じて、あなたはそれが十分に小さいだと思いますか?)であることから、私はメンテナンスに苦労したり(最大で)いくつかのより多くの機能を追加すること想像していないということですこれは既存のファイルにいくつかの追加を意味するかもしれないし、おそらく最大5-10個の新しいファイルの追加を意味するかもしれない。
私はメンテナンスのためだけにmvcに変換するべきではないと思っています。
mvcの各コンポーネントを別々のサーバーに置いて、別のサーバーにhtml、データベース、ロジックを提供するように負荷を分散させ、その他の最適化やキャッシングを追加してhichを作成することができます。 mvcアプリケーション規模で実行します。
私はそれが来ると仮定すると(小さなスパゲッティアプリケーションで、我々はなど、HTML、我々は簡単にWebサーバーの前にロードバランサを持つことにより、性能を低下させることなく拡張することができ、データベースなど、databaeサーバの異なるサーバーを持つことができないにもかかわらず、だと思います
これ以上のことで、スパゲッティコードはmvcよりも優れた性能を発揮します。インクルードやファイルの要求やフォルダの下に置かれたファイルからの関数呼び出しなどのオーバーヘッドはありません。 mvcの別のコンポーネントに属しています。
これらのことすべてを考慮すると、スケーラビリティとパフォーマンスのためにmvcに比較的小さなスパゲッティアプリケーションをリファクタリングすると便利だと思いますか?
リファクタリングが将来的には有用であるとは言わないでください(既存のコードベースにもっと多くのコードを追加する必要があるかどうかを判断するのに役立ちます)。
1)スケーラビリティとパフォーマンスのために、このアプリケーションをmvcアーキテクチャに変換する必要がありますか?
2)このようなスパゲッティアプリケーションは、1日に最低100万回のリクエストを実行し、ピーク時にはその半数を実行できますか?
一般的なフレームワークが実際に実装するものは「PMVC」と呼ばれ、コンポーネントを別のサーバーに配布することはできません。また、コードベースをスパゲティ(グローバルスコープ)コードから適切なプロシージャ構造(これは異なるもの)に移行する必要があります。出力と処理ロジックからSQL処理を分割してから、その上に仮説パターンを振り分けてください。 – mario
うーん...別のサーバーではないかもしれないが、あなたのメッセージの残りの部分を理解できない...私はあなたと同じくらい技術的な指導者ではない:) – user481913
パフォーマンスのためにPHPを最適化するのは無意味だ。実際に問題になると、PHPレベルで行うことができる最適化よりも単純なキャッシングが無限に効果があります。あなたが心配するべき唯一のことは(あなたがFacebookやTwitterのサイズになるまで)、あなたのコードの保守性です。セキュリティ、安定性、デバッグの容易さはすべてパフォーマンスより重要です。これらはすべて、コードの保守性と密接に関連しています。 – meagar