2 つの mysql データベース呼び出しを実行する PHP ファイルを作成しています。残りのスクリプトは、file_exists やその他の単純な変数などの if ステートメントです。これまでのところ、このファイルには約 2000 行のコードがあります。
ステートメントが true の場合、別のファイルを含めることをお勧めします。または、if ステートメント自体にコードを直接入力するだけですか?
PHPで遵守する必要がある単一ファイルのコードの最大行数はありますか?
2 つの mysql データベース呼び出しを実行する PHP ファイルを作成しています。残りのスクリプトは、file_exists やその他の単純な変数などの if ステートメントです。これまでのところ、このファイルには約 2000 行のコードがあります。
ステートメントが true の場合、別のファイルを含めることをお勧めします。または、if ステートメント自体にコードを直接入力するだけですか?
PHPで遵守する必要がある単一ファイルのコードの最大行数はありますか?
PHP ファイルの行数に関連するパフォーマンスの問題はありません。必要なだけ大きくすることができます。
さて、パターンとベスト プラクティスについては、ご自分で判断する必要があると思います。数千行のよく整理されたファイルと、実際には小さくて読みにくいファイルがたくさんあるのを見ました。私のアドバイスは次のとおりです。
1 つのファイルに 2000 行のコードがあることは、コンピューターの観点からは必ずしも悪いことではありませんが、ほとんどの状況ではおそらく回避可能です。MVC 設計パターンを調べてください。コードをより適切に整理するのに役立ちます。
また、(多数の) ファイルを含めると、コードの実行が遅くなることにも注意してください。
Bob Martin の Clean Codeのような本を読みたいと思うかもしれません。その本のいくつかのナゲットを次に示します。
クラス アプローチを使用していない場合は、PHP を使用します。重複の問題が発生します。あなた自身に好意を持って、この主題について読んでください。拡張とメンテナンスの時間を大幅に節約できます。
行数はパフォーマンスの良い指標ではありません。コードが効率的に編成され、論理クラスまたはブロックに分割されていることを確認し、無関係なコードを単一のモジュールに結合しないようにしてください。
PHP のような言語の問題の 1 つは、いくつかの創造的なキャッシュを除いて、含まれているすべてのファイルのすべての行をトークン化し、解析ツリーを介して圧縮し、ホスト ページが要求されるたびに意味のある命令に変換しなければならないことです。.NET や Java などのコンパイル済みプラットフォームは、このパフォーマンス キラーの影響を受けません。
また、他の投稿者の 1 人が、ファイルを短く保つ方法として MVC について言及していたため、優れたコード構成は経験と常識の機能であり、特定のパターンやアーキテクチャに縛られることは決してありません。MVC は興味深いものですが、この問題の解決にはなりません。
行数にこだわる必要はありますか?いいえ、必ずしもそうではありません。コードが整理され、効率的で、不必要に冗長でないことを確認してください。
コードを適切に文書化し、可能な限りモジュール化し、非効率性をチェックしている限り、それは問題ではありません。10,000行のファイルがあるかもしれません。私は通常、アプリケーションのセクションごとに約 500 ~ 1000 で分割します。
それほど単純なコードを分割する便利な方法はわかりません。特に、すべてが意味的に一緒に属している場合はそうです。
リファクタリングでコードの一部を削除できるかどうかを考えると、おそらくもっと興味深いでしょう。たとえば、変数がわずかに異なる特定のチェックの組み合わせを頻繁に使用する場合、チェックの組み合わせを関数に外部委託し、適切な場所で呼び出すことが役立つ場合があります。
大部分はうまく書かれているプロジェクトを見たことがありますが、そのような問題がありました。たとえば、構成ファイルを解析するためのコードは次のように複製されました。
if (file_exists("configfile")) {
/* tons of code here */
} else if (file_exists("/etc/configfile")) {
/* almost the same code again */
}
極端な例ですが、お分かりいただけたでしょうか。
2k 行は私には多すぎるように聞こえます... 従うコード スタイルによって異なりますが、たとえば、多くの改行、多くの小さな関数、または適切な API コントラクト コメントは、良い習慣ですが、サイズを大きくすることができます。また、コードの書式を適切に設定すると、行数が増える可能性があります。
PHP に関しては、知っておくとよいでしょう: 1 つのクラスだけで 2,000 行ですか、それとも OOP 以外の PHP コードを含む 1 つの大きなインクルードだけですか? テンプレートステートメントとプログラムロジックが混在していますか(PHPコードでよく見られるように)?
通常、分割するときにこれらの行を数えません。彼らはただ習慣になりました。コードが混乱した場合は、対応してリファクタリングします。チームとして最近書いたいくつかのコードをまだ調べていると、いくつかのパターンが見られます。
それでも、私が持っているコードの種類によって異なります。たとえば、ロジックの負荷が関係している場合 (if/else/switch/for)、関数ごとの LOC が減少します。関連するロジックがほとんどない場合 (単純で愚かなワンパス コード ステートメント)、制限が増えます。最後に、最も重要なルールは次のとおりです。人間はコードを理解するでしょうか。彼女/彼はそれをよく読むことができるでしょうか。