Python Blog

コードレビューって何をすればいいの?見るべきポイントを詳しく解説

| #python #初心者

コードレビューで何を見ればいいのかを初心者向けに解説。自分のコード、後輩のコード、AI生成コードを見るときの確認ポイントを、具体例付きでわかりやすく紹介します。

プログラミングを学び始めると、コードレビューをする場面があります。

でも、初心者のうちは何を見ればいいのかわかりにくいですよね。動いていればいいのでは?と思う人もいるかもしれません。

コードレビューは、間違い探し大会ではありません。

目的は、コードをより安全に、読みやすく、保守しやすくすることです。自分のコードでも、後輩のコードでも、AI生成コードでも考え方は同じです。

この記事では、IT初心者の方に向けて、コードレビューで見るべきポイントをわかりやすく解説します。

コードレビューとは何か

コードレビューとは、書いたコードを自分以外の人、または未来の自分が読み、問題がないか確認する作業です。

実務では、チームメンバーが書いたコードを別の人が確認してから本番に入れることが多いです。

ただし、コードレビューはチーム開発だけのものではありません。独学中の初心者でも、自分のコードを見直すセルフレビューができます。

コードレビューの目的は、誰かを責めることではありません。よりよいコードに近づけるための共同作業です。

コードレビューで大切なのは動くかだけではない

初心者のころは、コードが動くとそれだけで安心します。

もちろん動くことは大切です。しかし、システム開発では動くことはスタート地点です。

たとえば、次のコードを見てください。

a = 1200
b = 3
c = a * b
print(c)

このコードは動きます。

でも、何を計算しているのか少しわかりにくいですよね。

次のように書くと、意味が伝わりやすくなります。

price = 1200
quantity = 3
total_price = price * quantity

print(total_price)

処理内容は同じです。

しかし、後者のほうが読みやすく、あとから修正しやすいです。

コードレビューでは、動くかどうかだけでなく、読んだ人が理解しやすいかも確認します。

レビューの前に目的を確認する

コードを見る前に、まず確認したいことがあります。

それは、このコードが何をするためのものかです。

目的がわからないまま読むと、細かい書き方ばかり気になります。目的がわかると、どこを見るべきかがはっきりします。

たとえば、家計簿アプリなら金額計算、ログイン処理ならセキュリティや認証の扱いが重要です。

レビュー前には、次のような視点を持つと読みやすくなります。

確認すること なぜ大切か
このコードの目的 何を達成すべきか判断するため
入力される値 想定外の値で壊れないか見るため
出力される結果 正しい結果になっているか見るため
使われる場所 影響範囲を考えるため
変更理由 なぜ今この修正が必要か理解するため

コードだけをいきなり見るのではなく、目的から見る。これは実務でも大切です。

まず見るべき基本ポイント

ここから、実際にコードレビューで見るポイントを整理していきます。

最初から完璧なレビューを目指す必要はありません。基本の観点を順番に見るだけでも十分です。

変数名や関数名はわかりやすいか

最初に見たいのは、名前です。

変数名や関数名がわかりやすいと、コード全体の理解がかなり楽になります。

次のコードを見てください。

def calc(x, y):
    return x * y

短くて動きますが、何を計算しているのかわかりにくいです。

次のように書くと、意味が伝わりやすくなります。

def calculate_total_price(price, quantity):
    return price * quantity

レビューでは、名前を見て役割が想像できるかを確認します。

短い名前が必ず悪いわけではありませんが、意味が読み取れない名前が増えるとコードは読みにくくなります。

同じ処理を何度も書いていないか

次に見るのは、重複です。

同じような処理が何度も出てくると、修正漏れが起きやすくなります。

price1 = 1000
tax1 = price1 * 0.1
total1 = price1 + tax1

price2 = 2000
tax2 = price2 * 0.1
total2 = price2 + tax2

このコードは、消費税を計算する処理が繰り返されています。関数にすると読みやすくなります。

def calculate_price_with_tax(price):
    tax = price * 0.1
    return price + tax

total1 = calculate_price_with_tax(1000)
total2 = calculate_price_with_tax(2000)

同じ処理が複数回出てきたら、関数にできないか考えます。

以下の記事でも、関数に分ける判断を解説しています。

【関連記事】Pythonで同じ処理を何度も書いてしまう人へ。関数化のタイミングを解説

1つの関数が多くのことをしていないか

関数は便利ですが、何でも詰め込むと読みにくくなります。たとえば、次のような関数があるとします。

def process_order(order):
    total = 0

    for item in order["items"]:
        total += item["price"] * item["quantity"]

    if total >= 5000:
        shipping_fee = 0
    else:
        shipping_fee = 500

    print(f"合計金額: {total + shipping_fee}円")

この関数は、合計計算、送料計算、表示をまとめて行っています。

小さいコードなら問題ないこともありますが、処理が増えると修正しにくくなります。

次のように分けると、役割が見えやすくなります。

def calculate_items_total(items):
    total = 0
    for item in items:
        total += item["price"] * item["quantity"]
    return total

def calculate_shipping_fee(total):
    if total >= 5000:
        return 0
    return 500

def show_total_price(total, shipping_fee):
    print(f"合計金額: {total + shipping_fee}円")

レビューでは、この関数は何を担当しているのかを考えます。説明しにくい関数は、役割が大きすぎる可能性があります。

初心者が自分のコードを見るときのポイント

自分のコードを見るときは、どうしても甘くなりがちです。

書いた本人は理由を覚えています。でも、数日後の自分は他人です。

未来の自分が読んでもわかるか、という視点で見直してみましょう。まず確認したいのは、処理の流れが追えるかです。

変数がどこで作られ、どこで使われ、何が出力されるのか。自分の言葉で説明できれば、理解できています。

次に、不要なコメントや古いコードが残っていないかを見ます。

コメントは大切ですが、コードと違う内容だと逆に混乱します。

# 税抜き価格を表示する
print(total_price)

実際には税込み価格を表示しているなら、このコメントは危険です。

コメントを書くなら、コードを読めばわかることではなく、なぜそうしているのかを書くほうが役立ちます。

後輩や他人のコードを見るときのポイント

後輩や他人のコードを見るときは、技術的な観点だけでなく伝え方も大切です。コードレビューは、相手を否定する場ではありません。

この書き方はダメです、よりも、この名前にすると目的が伝わりやすそうです、のほうが受け取りやすいです。

レビューコメントでは、理由を添えましょう。

たとえば、次のようなコメントです。

避けたいコメント 改善したコメント
この変数名は悪いです この変数は合計金額を表しているので total_price にすると読みやすくなりそうです
関数が長すぎます 合計計算と表示処理を分けると、あとからテストしやすくなりそうです
ここ違います 入力が空文字のときにエラーになりそうなので確認を追加したいです
何をしているかわかりません この処理の目的を関数名かコメントで補足すると、次に読む人が理解しやすそうです

レビューは相手とのコミュニケーションです。

正しい指摘でも、伝え方がきついと改善につながりにくいです。

エンジニア歴10年の中で、私も多くのレビューをしてきました。よいレビューは相手を萎縮させず、次に同じ観点を自分で見られるようにするレビューです。

AIが書いたコードを見るときのポイント

最近は、AIにコードを書いてもらう機会も増えました。

AIが出したコードは、一見きれいに見えることが多いです。

しかし、見た目が自然でも正しいとは限りません。

初心者ほど、AIが出したコードをそのまま信じたくなるかもしれません。自分より詳しそうに見えますよね。

でも、AIのコードにもレビューは必要です。

確認したいのは、まず目的に合っているかです。

たとえば、税込み価格を計算してほしいのに、税抜き価格のまま返しているかもしれません。

次に、エラー時の処理です。

price = int(input("価格を入力してください: "))
print(price * 1.1)

このコードは、数字を入力すれば動きます。

しかし、abcのような文字を入力するとエラーになります。

AIが生成したコードでも、入力値の確認が抜けていることはあります。

user_input = input("価格を入力してください: ")

if user_input.isdigit():
    price = int(user_input)
    print(int(price * 1.1))
else:
    print("数字を入力してください")

このように、想定外の入力に対応しているかを見ます。

以下の記事では、AI生成コードを確認するときの考え方を詳しく紹介しています。

【関連記事】AIにコードをそのまま書かせても良い?最終的にチェックするべき項目は?

コードレビューで見るべき観点一覧

ここまでの内容を、実際のレビューで使いやすいように整理します。

迷ったときは、この表をチェックリストとして使えます。

観点 見るポイント
目的 仕様に合っているか 税込み価格を返すべきなのに税抜きになっていないか
正しさ 入力と出力が期待通りか 空文字や0でも動くか
読みやすさ 名前や処理の流れがわかりやすいか a, b, cだらけになっていないか
重複 同じ処理を繰り返していないか 同じ計算を複数箇所に書いていないか
関数の役割 1つの関数が大きすぎないか 計算、保存、表示をまとめすぎていないか
エラー処理 想定外の入力に対応しているか 数字以外を入力したときに落ちないか
セキュリティ 危険な値をそのまま使っていないか パスワードを直書きしていないか
テスト 確認方法があるか 正常系と異常系を試しているか

初心者のうちは、この中でも目的、正しさ、読みやすさ、エラー処理を優先して見るとよいです。

慣れてきたら、セキュリティやテストの観点も増やしていきましょう。

テストしやすいコードかを見る

コードレビューでは、テストしやすいかも大切です。テストしやすいコードは、入力と出力がはっきりしています。

たとえば、次のコードはテストしにくいです。

price = int(input("価格を入力してください: "))
total = int(price * 1.1)
print(total)

inputとprintが直接入っているため、計算だけを確認しにくいです。

次のように関数に分けると、テストしやすくなります。

def calculate_tax_included_price(price):
    return int(price * 1.1)

print(calculate_tax_included_price(1000))

この形なら、1000を渡したら1100が返るかを確認できます。

assert calculate_tax_included_price(1000) == 1100
assert calculate_tax_included_price(0) == 0

レビューでは、このコードはどう確認するのかを考えると、問題に気づきやすくなります。

テストに興味がある方は、こちらの記事も参考になります。

【関連記事】pytest入門|Pythonでテストを書く基本を初心者向けに解説

セキュリティは初心者でも少し意識する

セキュリティというと難しく聞こえますが、初心者でも最低限見たいポイントがあります。

たとえば、パスワードやAPIキーをコードに直接書いていないかです。

API_KEY = "abc123secret"

このような値をGitHubなどに公開してしまうと、悪用される可能性があります。

また、ユーザーから受け取った値をそのまま使っていないかも重要です。Webアプリやデータベースでは特に注意しましょう。

初心者のうちは完璧でなくて大丈夫です。ただし、秘密情報をコードに書かない、入力値を信用しすぎない、という意識は持っておきましょう。

レビューコメントの書き方

コードレビューでは、何を見るかと同じくらい、どう伝えるかが重要です。

後輩のコードを見る場合、指摘ばかりになると相手はコードを書くのが怖くなってしまいます。

レビューコメントでは、次のような形が使いやすいです。

この処理は合計金額の計算に見えるので、変数名を total_price にすると読みやすくなりそうです。

ポイントは、理由を添えることです。

なぜ変えたほうがよいのかがわかると、相手は次から判断しやすくなります。

また、必須の修正なのか、提案なのかも分けると親切です。

ここはエラーになる可能性があるので修正したいです。
ここは好みもありますが、関数に分けると読みやすくなりそうです。

強い指摘と軽い提案を分けるだけで、レビューは受け取りやすくなります。

私がレビューで意識していること

私はエンジニアとして10年ほどコードを書き、レビューも多く経験してきました。

その中で感じるのは、コードレビューで一番大切なのは、未来の変更に強いかを見ることです。

今日だけ動けばよいコードと、半年後に直せるコードは違います。

実務では、書いた本人がずっと面倒を見るとは限りません。別の人や数か月後の自分が読むこともあります。

だから私は、レビューするときにこのコードは次に読む人が迷わないかをよく考えます。

細かい書き方よりも、処理の流れ、名前、責務の分け方、エラー時のふるまいを重視します。

もちろん、スペルミスやフォーマットも大事です。

でも、それ以上に大切なのは、このコードを安全に育てていけるかです。

初心者の方も、最初からプロのようなレビューをする必要はありません。

未来の自分が読んで困らないかという視点だけでも、コードの見え方は変わるのです。

コードレビューを習慣にするコツ

コードレビューは、特別なイベントにしすぎると続きません。まずはコードを書き終えたあとに3分だけ見直すところから始めるとよいです。

いきなり全観点を見る必要はありません。

今日は変数名だけ見る。次は同じ処理がないか見る。その次はエラー処理を見る。

少しずつ観点を増やしていけば十分です。

AIを使っているなら、次のように聞くのもおすすめです。

このPythonコードを初心者向けにレビューしてください。
特に変数名、重複、エラー処理の観点で見てください。

ただし、AIのレビューも正しいとは限りません。

AIの指摘をそのまま受け入れず、なぜ必要なのかを確認しましょう。

AIはレビューの先生ではなく、壁打ち相手として使うのがちょうどよいです。

まとめ

コードレビューは、コードの悪いところを探して責める作業ではありません。

コードをより安全に、読みやすく、保守しやすくするための作業です。

初心者がまず見るべきなのは、目的に合っているか、正しく動くか、名前がわかりやすいか、重複がないか、エラー時にどうなるかです。

自分のコードを見るときは、未来の自分が読んでもわかるかを意識しましょう。

後輩のコードを見るときは、理由を添えて伝えることが大切です。

AIが書いたコードを見るときは、見た目のきれいさに安心せず、目的、入力、出力、エラー処理を確認しましょう。

最初から完璧なレビューはできなくて大丈夫です。

レビューの力は、コードを読む回数とともに少しずつ育ちます。

今日書いたコードを、まず3分だけ見直してみてください。その小さな習慣が、読みやすく壊れにくいコードを書く力につながります。

ここまでお読みいただきありがとうございました。

次のアクション

記事で読んだ内容を、講座で実装してみましょう

Python WebAcademyでは、ブラウザ上でコードを書いて実行結果を確認できます。無料で始められる講座から、学習の流れを試せます。

あわせて読む

関連記事

ブログ一覧へ