10:コメントには「なぜ」を書く

プログラムの コメント には何を書いていますか? コメントを書くときにも、抑えておくべきポイントがあります。

具体的な失敗

def do_something(users):
    # ~~をする処理
    # usersにはUserのQuerySetを受け取る

    # 引数のusersを1つひとつループして処理をする
    # usersがループするときにバックエンドにSQLが実行される
    for user in users:
        ...
    return users  # SQLはループでの1回しか実行されない

このプログラムには無駄なコメントが多いのが問題です。 プログラムを読めば、処理は理解できます。コメントがないと理解しにくいコードの場合、コメントで説明を補う前に簡単なコードに書き直せないか考えてみましょう。

ベストプラクティス

コメントには「なぜ」を書きましょう。 関数の仕様を書く場合はコメントでなく、docstringに書きましょう。

def do_something(users):
    """ ~~をする処理

    複数のユーザーに対して <do_something> を行う。
    ~~の場合に~~なので、ユーザーのデータを変更する必要がある。
    """
    # SQLの実行回数を減らすために、このループは別関数に分離せずに処理する
    for user in users:
        ...
    return users

コードを読むだけでは理解しにくいプログラムの場合、処理の意味と、なぜそう書くのか をコメントに書きましょう。

コメントは 「なぜこう処理しないのか」の説明 と考えても良いでしょう。 プログラムを読んだ人が「当たり前に考えた」ときに違和感があるような処理に「なぜこのような処理をしているのか」を注釈する場合などに使うと効果的です。

cover

(中略)詳細は書籍 自走プログラマー をご参照ください