LoginSignup
0
0

More than 3 years have passed since last update.

コードヘルス - コメントをつけるべきか、つけないべきか

Posted at

この文書はCode Health: To Comment or Not to Commentの翻訳です。

コードを読んでいると、いいコメントほど助けになるものはない。 しかしながら、コメントは必ずしもいいものだとは限ない。 ときには、コメントが必要ということはそのコードがリファクタリングするべきとういサインかもしれない。

コード自体で説明できないときにだけコメントを使おう

コードが何をしているか説明するコメントが必要だと考えるなら、まず、次のどれかを試そう。

説明的な変数を使う。

よくない例

// 割引を価格から引く
finalPrice = (numItems * itemPrice)
    - min(5, numItems) * itemPrice * 0.1;

修正後

price = numItems * itemPrice;
discount =
    min(5, numItems) * itemPrice * 0.1;
finalPrice = price - discount;

メソッドを抽出する。

よくない例

// Filter offensive words.
for (String word : words) { ... }

修正後

filterOffensiveWords(words);

より宣言的な識別子名を使う。

よくない例

int width = ...; // Width in pixels.

修正後

int widthInPixels = ...;

コードに仮定があるならチェックを加える

よくない例

// heightは常に0より大きいので大丈夫
return width / height;

修正後

checkArgument(height > 0);
return width / height;

コメントが役に立つ場合

意図を明らかにする

なぜコードがそうなっているのか(そうなっていないのか)を説明する

// 計算コストが高いため一度だけ計算する

よくできた機能をもったエディターが誤ってコードを「修正」しないように

// Fooはスレッド安全でないため、新たなFooを作る

解説: コードレビューの際に出た質問や、コードを読む人がおそらく持つであろう質問

// 順序に注意。なぜなら、

ダメなエンジニアがやっていることのようにみえることへの説明

@SuppressWarnings("unchecked") // このキャストは安全。なぜなら、

一方で、コードがやっていることをただ繰り返すコメントは避けよう。

よくない例

// Get all users.
userService.getAllUsers();

よくない例

// Check if the name is empty.
if (name.isEmpty()) { ... }
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0