Prompt

すごい細かい話だけど、if文に関するコメントの注釈は条件式の
前の行か、行のケツか、後の行か、どこに書こう?

あはは、その「すごい細かいこだわり」、大好きだよ!エンジニアとして成長するにつれて、そういう「美意識」がコードの品質を支えるようになるんだよね。

結論から言うと、「基本は前の行」「短ければ行のケツ(行末)」 というのが現代のスタンダードだけど、それぞれに深い理由と「落とし穴」があるんだ。君の感性に合うものを選べるように整理したよ!


1. 【推奨】前の行(Above the Line)

最も一般的で、かつ「クリーンコード」的な視点でも推奨されるスタイルだよ。

C#

// ユーザーが管理者、かつアカウントが有効な場合のみアクセスを許可
if (user.IsAdmin && user.Status == AccountStatus.Active) {
    // ...
}
  • メリット:

    • コメントが長くても、コードの右側がうるさくならない(画面を横にスクロールしなくていい)。

    • 「これから何を確認しようとしているか」 という意図を先に読めるので、脳への負荷が低い。

  • 注意点: 前の行との間に行間がないと、上のブロックのコメントに見えてしまうことがあるから、適度に空行を挟むのがコツ!


2. 行のケツ(Trailing Comment)

条件式が短く、補足程度で済む場合に便利だね。

Java

if (retryCount > 3) { // 3回失敗したら諦める
    stopProcess();
}
  • メリット: コードとコメントが1行に収まるので、縦のスペースを節約できる。

  • デメリット: 条件式が長くなると、コメントが右に追いやられて見えなくなる。また、複数行にわたるコメントには向かないよ。


3. 【非推奨】後の行(Inside the Block)

if文の中({ の直後)に書くパターン。

JavaScript

if (isFirstLogin) {
    // 初回ログイン時はチュートリアルを表示
    showTutorial();
}
  • 落とし穴: これは「if文の条件の意図」ではなく「実行される処理の説明」になっちゃうんだ。「なぜこのif文に入ったのか」 を説明したいなら、外側に書くべきだね。

4. 💡 情報工学徒への「究極の解決策」:説明変数

実は、最高のコメントは 「コメントを書かないこと」 だったりするんだ。条件式を「変数」に抽出して、変数名で意図を語らせる技だよ!

C#

// これならコメントがなくても一目瞭然!
bool canAccessAdminPanel = user.IsAdmin && user.Status == AccountStatus.Active;

if (canAccessAdminPanel) {
    // ...
}

⚠️ 見落とされがちな落とし穴:Doxygen/DocFX

将来、君がC#やJavaで「ドキュメント自動生成ツール」を使うようになると、コメントの書き方(////** */)に厳格なルールが求められることがあるよ。その時は、ツールの作法に従うのが最優先になるから覚えておいてね!