ソースコードの記述中に80文字の制限のベストプラクティスに従う方法


15

だからあなたが知っているように言ってベストプラクティスがあります

ソースコードの行を80文字に制限します。

2つのリンクがあります。

80文字がコード幅の「標準」制限であるのはなぜですか?

ワイドスクリーンモニターの時代には、80文字の制限がまだ関係していますか?

そして、このベストプラクティスを検索すれば、もっとうまくいくと思います。

しかし、これは非常に難しいと思います。サンプルの例を次に示します。

public class MyClass {

    public void myMethod() {

        final Map<String, List<MyInterfaceHere>> myReference

したがって、各クラスと各メソッドと各ステートメントをインデントします。

そして、「myReference」にある最後の「e」の終わりまでに、すでに列60にいます。

私は実際にコンストラクタを呼び出して、私が持っている参照にオブジェクトを割り当てるために20個のスペースが残っています。

私はこれが本当に良く見えることを意味します:

public class MyClass {

    public void myMethod() {

        final Map<String, List<MyInterfaceHere>> myReference 
                = new HashMap<String, List<MyInterfaceHere>>(); 

ここでのベストプラクティスは何ですか?


6
私たちは、140 80は、小さな画面と小さなプリンターの日でよかったかもしれませんそれを作る
tgkprog

7
ベストプラクティスあなたは5/6のような終末期のバージョンでない限りはそうでしょうfinal Map<String, List<MyInterfaceHere>> myReference = new HashMap<>();(あなたの例のようにインデントで80文字)
ブヨ

4
メタベストプラクティスは、20年前の盲目的にベストプラクティスを使用しないことです。。17" CRTは1280×1024の解像度、意味を成していた下の文字制限はなく、今日遊ばし戻るとき
TMN

2
ディスプレイの使用可能なすべてのスペースに広がるのではなく、テキストの狭い列を使用する利点の1つは、複数のコードを並べて簡単に表示できることです。80 chars * 7 pixels/char = 560 pixels per file。これにより、2つのファイル(1120ピクセル)を1280ピクセルのワイド画面に、または3つのファイル(1680ピクセル)を1920ピクセルの画面に快適に収めることができます。 。または時折わずかに長いラインです。
8bittree

3
@ 8bittree 2つのモニターでコードを並べて表示できます。単一のモニターで開発することは、1つの車輪だけで車を運転するようなものです。

回答:


18

ベストプラクティスは、「あなた、同僚、および使用しているすべてのツールが満足できるように行の長さを制限する」ことと、いくつかの常識であるべきです。80文字は非常に低く、読みやすさが低下する傾向があります。私はかつてこのような行に完全にだまされました:

/* Very long comment to the end of the line */ realCode ();

関数呼び出しが画面上に表示されなかった(同僚の画面上にも表示されなかった)場合は表示されません。

エディターに100列の余白を表示するように設定し、表示中にコードを再ラップするため、編集中はすべてが常に表示され、長すぎる行は手動で2つ以上の行に分割される傾向があります。自動フォーマットを行う場合、エディターが分割ステートメントを適切にフォーマットするように祈ります。深くネストされたステートメントにならないコーディングスタイルを使用します。(一部の人々は、200文字の深いインデントにつながる20個のif文とそれに続く20個のelse文のネストを作成しますが、誰がどのifに属しているのかわかりません)。

特定の場合、Swiftはこれを回避する方法を発明しました。「let」変数(他の言語の「final」とほぼ同じ)には、使用する前に1回だけ値を割り当てる必要がありますが、必ずしも宣言ではありません、面倒な行を2つの独立したステートメントに分割できます。

PS。実際に人間が書いたコードで、400文字を超える行に遭遇しました。言い換えれば、24インチのモニターであっても、行の残りの部分を読むためには何年もスクロールする必要があります。面白くなかった:-(


10
/* Very long comment to the end of the line */ realCode ();すでに他のスタイルの規則を破るべきだと思われます。
ロバートハーベイ

3
/* Very long comment to the end of the line */ realCode ();IDEがコメントとコードを自動的に別々の行に配置するコードフォーマッタを備えている理由の1つです。

2
それは悪名高い「if(条件)\ n \ tgoto exit; \ n \ tgoto exit;」と書いたのと同じソースから来ました。ほんの数年前。
gnasher729

最大行の長さを80文字に設定すると、1行ですべてを実行するために長いテキスト行を書くのではなく、関数とクラスとオブジェクト指向の観点から考えるようになります。他の人が簡単に準備できるプログラムを書くことができます。第二に、私が経験した大半のプログラマーは、SVでラップトップで動作するのを見てきましたが、大画面ディスプレイを常に使用できるわけではありません。したがって、80文字の行制限で記述すると、すべての人に役立ちます。第三に、大きなモニター画面を複数のペインに分割し、コードを同時に表示できます。
alpha_989

3

はい、良く見えます。それが「長すぎる線を使わないで!」格言はとても強いです。

ベストプラクティスとして、これらの恐ろしく長いコンストラクタ式を使用することはありません。私はいつも使用します

public class MyClass {

    public void myMethod() {

        final Map<String, List<MyInterfaceHere>> yReference = newMap();

適切に定義された、静的にインポートされたの値newMap()。私はそれが組み込みバージョンを持っていないことをJavaの重大な欠陥と考えています。


1

目標は「行を80文字に保つ」ことではありません。目標は「コードを読みやすく理解しやすくする」ことです。人工的な80文字の制限は読みやすさの向上に役立ちますが、チームが決定しない限り、難しくて速いルールではありません。

あなたはベストプラクティスを求めましたが、ベストプラクティスは「コードをできるだけ読みやすくすることに焦点を合わせること」です。80文字以上が必要な場合は、そうしてください。


1

Returnキーを押すことを恐れないでください。ほとんどの最新言語(例のJavaを含む)は、複数の行にまたがるステートメントに非常に満足しています。

行を区切る場所について少し考えてみれば、80カラムの制限に収まり、完全に読みやすいものを得ることができます。公式のJavaコーディング規則では、優先する場所を指定して改行することもできます。

うまく行けば、きちんと分割された行は、画面の側面から消える行よりもずっと読みやすくなります。


1

コードの行の長さ/幅を強制する場合は、ツールを使用します。

  • リシャーパー
  • ビジュアルアシスト

開発者は妥当な長さ(80、120、200など)を決定し、ツールでそのオプションを設定します。

その後、行の幅や長さに関係なく、通常どおりコードを記述します。機能して終了したら、右クリックして[ コードのクリーンアップ ] または同様のオプションを選択します。ツールは、指定されたとおりにコードをフォーマットし、示されているように長い行を分割します。

簡単で、すべてのソースファイルは同じ方法でフォーマットされます。


0

最近では80文字の制限は少し短すぎるかもしれませんが、それは役立ちます。コードも適切にフォーマットする必要があるというこれらすべての意見に同意します。例コード

/ *行の最後までの非常に長いコメント* / realCode();

80 chr以内かもしれませんが、コメントとコードオプションが同じ単一行にあるため、混乱を招きます。

80 chrの制限に従うかどうかは個人が選択できますが、物事がシングルショットで見える場合は、プログラマーや他のレビュー担当者にも常に快適な視界と感覚を与えます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.