Python WebAcademy Blog

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

コードレビューで何を見ればいいのかを初心者向けに解説。自分のコード、後輩のコード、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では、ブラウザ上でコードを書きながら基礎から実践まで体系的に学べます。

Python WebAcademyの学習画面

あわせて読む

関連記事

ブログ一覧へ

Python学習ロードマップ

まずはこの3講座から

記事で気になったテーマを、順番に手を動かしながら学べます。

ロードマップを見る