📝

見やすい if 文

に公開

プログラミングにおいてコードの可読性と変更容易性を保つことは極めて重要です。そのため、特に注意すべき記法として if 文のワンライナーとブロック記号 {} の省略があります。

if のワンライナーを避けるべき理由

具体的には以下のような記法です。

if (x) statement

責務の分離と可読性

ワンライナーの問題点は、一行の中に「判断」と「処理」という二つの異なる責務が混在してしまうことです。これにより、コードを読む際に常にifの直後に何が書かれているのかを気にしなくてはならず、認知的負荷が高まります。

また、コード変更の際にワンライナーで書かれた部分の範囲が曖昧になり、思わぬミスを招く可能性があります。

ブロック {} の省略も避ける

同様に、命令ブロックを示す {} の省略も避けるべきです。特に文法が自由な言語では、ブロックを明示的に書くことでコードの範囲が明確になり、誤解やミスを防ぐことができます。

例外ケース

もちろん例外的に許容されるケースもあります。それは、分岐の目的が非常に明確で簡単に読み飛ばせる場合です。例えば、関数の冒頭で入力値の検査(事前条件検査)を行うようなケースです。

fun isTeenAge(age: Int): Boolean {
    if (age < 0) { throw Exception() }
    if (age > 150) { throw Exception() }
    return (age >= 12) && (age <= 19)
}

また、ログの出力やデバッグ用の簡単な補助的コードもワンライナーとして許容されます。(個人的には好きではありませんが。)

fun processSomething(): Int? {
    val result = executeA();
    if (result != null) { println(result) }

    return result 
}

ほか、一連の記述における視覚的な類似性を活用する場合があります。

fun convertCodeToText(code: Int): String? {
    if (code == 1) { return "spring" }
    if (code == 2) { return "summer" }
    if (code == 3) { return "autumn" }
    if (Code == 4) { return "winter" }
    return null
}

結論

コードは明確に責務を分離し、可読性と変更容易性を維持することが大切です。手軽に見える if のワンライナーやブロックの省略は避け、長期的な保守性を考えた明示的な記述を心がけましょう。

コードは常に「読み手のために書く」という意識を持つことが重要です。


この記事は、文責者の骨子からAIが生成した文章を元にしています。

Discussion