ブロックのチェックを行います。
空ブロックをチェックします。
コードを修正していく内、不必要なロジックが残ったままになる事があります。
空ブロックはその典型とも言えます。
チェックする事で、不要なコードを削除するのに役立ちます。
空ブロックの識別方法を設定します。
ステートメントが存在しない部分を空ブロックと識別します(デフォルト)。
if (...) {
// これは空ブロックと認識される
}
何らかの文字が存在しない部分を空ブロックと識別します。
if (...) {
// これは空ブロックと認識されない
}
チェック対象を設定します。
左中括弧 { の出現位置をチェックします。
こういうものがプロジェクト内でバラバラだと
プログラムはとても読みにくくなります。統一しましょう。
正とする出現位置のパターンを設定します。
行末に出現します(デフォルト)。
void func() {
}
行頭に出現します。
void func()
{
}
通常は行末に出現します。
ただし、複数行にまたがる場合は行頭に出現します。
if (a == 1 && b == 1) {
// 通常は行末を正とする
}
if (a == 1
&& b == 1)
{
// ただし、複数行にまたがる場合は行頭を正とする
}
1行の最大文字数を設定します。
チェック対象を設定します。
中括弧の必須チェックを行います。
if (param == null) return;
上の文ではif文の中括弧を省略しています。
このチェックを有効にすると、このようなコーディングを抑制することが出来ます。
このような簡単な場合など、つい括弧を省略したくなりがちですが
これには意外なほどデメリットがあります。
まず、ぱっと見てそこに条件文があることを認識しにくくなります。
条件文はプログラムの分岐点ですので、括弧を付けてインデントを分けた方が
見やすくて良いのです。
そして、カバレッジ計測時にも弊害があります。
ラインカバレッジの場合、「その行を通ったか」という観点で計測します。
条件文を1行に収めてしまうと、条件式の真偽に関わらず
常にカバレッジが満たされてしまいます。
他にも、例えばブレークポイントを設定するような場合でもそうです。
ほとんどのIDEでは行単位でポイントを設定します。
1行になっていると、「条件が満たされたときにブレークポイントを設定する」
という事が出来ません。
チェック対象を設定します。
右中括弧 } の出現位置をチェックします。
正とする出現位置のパターンを設定します。
他のテキストと同じ行に出現します(デフォルト)。
try {
} catch ...
他のテキストは同じ行に出現せず、常に単体で行中に出現します。
try {
}
catch ...
チェック対象を設定します。
ネストしたブロックをチェックします。
void func() {
...
{
// この部分が、ネストしたブロックです
}
...
}
ネストブロックは一見便利ですが、それによってコードが非常に汚れてしまいます。
面倒でも、こういった処理はメソッド化しましょう。
caseブロックのネストを許可します。
switch (i) {
case 0: {
// これは許可する
}
}