可能であれば、括弧なしのバージョンを好みます。
以下の説明は長めです。どうか我慢してください。このスタイルを好む理由を説得します。また、通常の反論が成り立たないと思う理由も説明します。
(近く)空の行は無駄です
この理由は、閉じ括弧には余分なコード行が必要であり、スタイルに応じて開き括弧も必要なためです。1
これは大したことですか?表面的には、ありません。結局のところ、ほとんどの人はコードに空行を入れて論理的にわずかに独立したブロックを分離するため、読みやすさが大幅に向上します。
しかし、私は垂直スペースの浪費を嫌います。最新のモニターには、実際には十分な水平スペースがあります。しかし、垂直方向のスペースはまだ非常に限られています(直立したモニターを使用する場合を除き、これは珍しいことではありません)。この限られた垂直方向のスペースが問題です:個々のメソッドはできるだけ短くする必要があり、対応するブレース(または他のブロック区切り記号)は画面の高さの差以下でなければならず、ブロック全体が表示されないことが広く認識されていますスクロール。
これは根本的な問題です。画面上でブロック全体が表示されなくなると、把握が複雑になります。
結果として、冗長な空の行を嫌います。独立したブロックを区切るために単一の空行が重要である場合(このテキストの視覚的な外観を見てください)、連続した空行は私の本では非常に悪いスタイルです(そして、私の経験では通常、初心者プログラマーのサインです)。
同様に、単にブレースを保持し、節約できる可能性のあるラインもそうでなければなりません。中括弧で区切られた単一ステートメントブロックは、1〜2行を無駄にします。画面の高さあたり50本の線だけで、これは顕著です。
中かっこを省略しても害はありません
中かっこを省略することに対する引数が1つだけあります。誰かが問題のブロックに別のステートメントを後で追加し、中かっこを追加するのを忘れて、コードのセマンティクスを不注意に変更するということです。
これは確かに大したことでしょう。
しかし、私の経験ではそうではありません。私はずさんなプログラマーです。それでも、プログラミングの10年間で、シングルトンブロックに余分なステートメントを追加するときに中かっこを追加することを忘れたことは一度もありません。
これはよくある間違いであると信じることさえできません。ブロックはプログラミングの基本的な部分です。ブロックレベルの解決とスコーピングは、プログラマーにとって自動的に根付く精神的なプロセスです。脳はそれを行うだけです(そうでなければ、プログラミングについての推論はずっと難しくなります)。中括弧を置くことを覚えておくために必要な追加の精神的な努力はありません。プログラマーは、結局、新しく追加されたステートメントを正しくインデントすることも覚えています。そのため、プログラマーはブロックが関係していることをすでに精神的に処理しています。
今、私はいない括弧を省略すると、ミスを起こさないことを言って。私が言っているのは、何らかの形で証拠がないということです。私たちは、単に知らない、それが害を引き起こすかどうか。
だから誰かが科学実験から集められたハードデータを見せて、これが実際に問題であることを証明するまで、この理論は「まあまあの物語」のままです。なければならない引数として使用します。
1この問題は、ブレースを含むすべてを同じ行に置くことで解決される場合があります。
if (condition)
{ do_something(); }
しかし、ほとんどの人がこれを軽deしていると言っても安全だと思います。さらに、中括弧なしのバリアントと同じ問題があるため、両方の世界で最悪です。