「推奨」ファイルの長さと線幅[終了]


9

特定のファイルのコードの最大行数について、評判の良いソースからの推奨事項を誰かが知っているかどうか知りたいと思いました。たとえば、GoogleのClosure Linterは、各行が80文字を超えないようにすることを推奨しています。


あなたの例は質問と一致していません。あなたの質問はファイルごとの行について尋ね、あなたの例は行ごとの文字数です。
Jason S

2
それは同じ概念です-水平か垂直かに関係なく、スクロールしなければならない正方形の領域です。
Devin G Rhode

回答:


11

ファイルは、何度もスクロールしたり探したりせずに検索したり、検索文字列を覚えたりしなくても、関数やメソッドを見つけることができるほど短い必要があります。私が使用する測定基準は、ファイル内のコードの検索と読み取りの時間です。それが顕著になった場合は、ファイルまたはクラスをパーティション分割し直してください。

基本的なコードブロックの適切なサイズは、幅と高さの両方で十分に短いため、グループコードのレビュー時にその根本を投影でき、フォントが小さくて後ろの人がいないようにすべてを合わせることができます。会議室はそれを読むことができません。このサイズは、モバイルデバイスまたはタブレットだけを持っているときに、コードを説明するように呼ばれる場合にも役立ちます。


これは最も役立つガイドラインです。どうもありがとうございました。
Devin G Rhode

すぎるファイル長はありますか?私には、平均長さが200行までの35個のファイルがあるプロジェクトがあります。
Dan

1
@ダン答えは「ノー」です。セットアップでファイルを開くのが難しい場合は、セットアップを改善する時期かもしれません(つまり、vimプラグイン、より優れたIDE、emacsが行うことは何でも)
Mike Graf

@ダン:ファイルが短すぎる?論理的で密接に関連している(ただし長すぎない)ファイルで見つけるのではなく、いくつかのLOCの正しい小さなファイルを検索するためにより多くの時間を費やした場合に可能です。
hotpaw2

9

そのようなことはありません。もしあったとしても、使用している言語に大きく依存します(たとえば、アセンブラーでC#やJavaと同じことを行う)。

高水準言語については、この SOの議論を見ることができます。Java / C#の場合、メソッドごとに10〜20行が、Bob Martinが推奨する最大値です。それは関連がなく、クラスが何をすることになっているかに依存するので、ファイルに関する議論はありません。

1行あたり80文字の制限について-これは、パンチカードの時代への先祖返りです。とはいえ、行が長くなりすぎると、読みやすさが低下します。


5
+1:行を80文字未満の幅に保つことは良いことです。読みやすく、サイドバイサイドウィンドウのスペースが
広くなり

6
個人的には、1行が80行以下に収まるように複数行に切り詰められると、読みやすさが低下すると思います。また、どこで休憩をするかを決定したり、その点についてそれについて議論したりするのに費やされた時間もあります。
ergosys 2012年

5

ファイルと行の長さは、複雑さの二次的影響の測定であり、そのため非常に変動します。目指すべきは、特定の最大行数ではなく、不要な複雑さのないコードです。

長いファイルは、メソッド、サブルーチン、またはクラスが過度に複雑であることを示しがちです(多くのことをしている、十分に因数分解されていないなど)。

長い線は、式が過度に複雑であることを示す傾向があります。

それらは潜在的なコードの問題を示すにおいであり、明確に定義されたターゲット指標ではありません。


3

行の長さは、行全体を見るために画面をスクロールする必要がないような長さにする必要があります。モニターのサイズと解像度によって異なります。

1つの画面に収まる場合は、メソッドと関数が最適です。

ファイルは長すぎてはいけません。最良のものは、クラスと実装が理解しやすい短いファイルです。
かつて、10 klinesファイルのプロジェクトに取り組みました。とても複雑な本を読むようなものでした。実装によって発生した問題の数を通知する必要がありますか?


特にグループコードレビューの場合、コードに小さなフォントの大きなモニターを設定する必要はありません。
hotpaw2

「行の長さは、行全体を表示するために画面をスクロールする必要がないような長さにする必要があります。」-エディターがラップするとどうなりますか?
Dan Dascalescu 2017年

3

80文字!

私がCOBOLを行ったとき、私は約80 ページ以上の課金プログラムのソースコードファイルを見ていました。もちろん、これが一般的な慣習に近いことはわかりませんが、80文字も同様にばかげています。

クラスサイズビューから、この提案を約80のプロパティと20ほどのメソッドを持つ一般的なCustomerクラスに適用しようとすると、クラスを他のいくつかのクラスに分割し、コードを非常に乱雑にする必要があります。


1
もちろんです。80文字は、ポートレートA4 /レターシートに適切なフォントサイズでブレーンストーミング用のコードのセクションを印刷できることを意味します。また、合理的な開発用コンピューターモニターでは、3方向のマージを行うために水平方向にスクロールすることなく、ソースコードの3つのコピーを並べて表示できます(80x8x3が1920 * 8 'であるのはおもしろい)。
マークブース

2

クラスとメソッドは短く保つようにしていますが、行の長さについてはあまり気にしないでください。ワイドスクリーンと長い識別子の最近の時代では、80文字は少なすぎると思います。ステートメントを簡単に読み取れるように分割するにはいくつかの作業が必要です。80文字の制限があるため、頻繁に発生します。1行あたり約120列または130列の方が妥当だと思います。


私は22インチモニターを垂直方向に反転させて使用します。これにより、各画面で1080ピクセルが表示されます(垂直方向では、一度に104行のコードを表示できます!)。このようなシナリオでは、行幅を90文字以下に保つと役立ちます。
Roy Tinker 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.