目的
コードレビューを依頼する前に、自分で確認することで、レビューアの時間を節約し、指摘の質を高めることを目指します。また先輩エンジニアや稼働率の高いメンバーへの配慮となります!
新人エンジニア時代はレビュー数がとんでもないことになりがち。。。。
PJで許されているのであれば、先にChatGPTなどのAIに以下の項目をチェックしてもらうのも良いでしょう!
チェックリスト項目
-
コードのスタイル
- 不要な改行やスペースが含まれていないか。
- コメントが適切に整理されているか(無駄が多すぎない、必要最低限で要点を押さえている)。
- インデントが揃っているか。
-
命名規則の確認
- 変数名や関数名が目的を的確に表現しているか。
- 一貫性が保たれているか(例:CamelCase、snake_caseなど)。
-
コードの可読性
- 長すぎる一行のコードを適切に改行しているか。
- 複雑な処理が簡潔に整理されているか。
- 必要に応じて、ヘルパー関数やコメントで処理の意図が補足されているか。
-
無駄なコードの排除
- 未使用の変数や関数が残っていないか。
- デバッグ用のコード(print文やconsole.logなど)が削除されているか。
-
動作確認
- コードが期待通りに動作するかローカル環境でテスト済みか。
- 変更した箇所が、他の部分に影響を与えていないことを確認したか。
リファクタリング例
改善前
以下のような長い一行コードは、可読性を損ないます:
human_capitals = HumanCapitals.objects.select_related("position", "department__company")
data = [{"id": h.id, "name": h.name, "position": h.position.name, "department": h.department.name, "company": h.department.company.name} for h in human_capitals]
なぜ読みにくい??
-
一行が長い:
- コードが一行に長く書かれていると、特に画面やエディタの幅によっては、全体を把握しにくくなる。一行が長くなると、横にスクロールしなければ全文を見ることができないため、コードの流れを追いにくくなってしまう。。。
- コードが一行に長く書かれていると、特に画面やエディタの幅によっては、全体を把握しにくくなる。一行が長くなると、横にスクロールしなければ全文を見ることができないため、コードの流れを追いにくくなってしまう。。。
-
複数の要素が同じ行に詰め込まれている:
- 複数のデータ属性(
id
,name
,position
,department
,company
)が同じ行に並んでいるため、どの属性がどの変数に対応しているか一見して理解しにくくなっている。これにより、特定の情報を探す際に余計な時間がかかる可能性があり。。。。
- 複数のデータ属性(
-
データ構造が直感的でない:
- リスト内包表記を使用している部分が、複数の属性を含む辞書を生成しており、その複雑さが一行にまとめられてしまっている。これにより、どのようなデータ構造を意図しているのかが一見して把握しにくくなっている。。。
- リスト内包表記を使用している部分が、複数の属性を含む辞書を生成しており、その複雑さが一行にまとめられてしまっている。これにより、どのようなデータ構造を意図しているのかが一見して把握しにくくなっている。。。
-
視覚的区切りが少ない:
- コード内に適切なインデントや空行が使用されていないため、各部分の区切りが明確ではない。視覚的な区切りがあると、コードの各部分がどのように機能しているかを素早く理解する手助けとなりそう。
改善後
次のように書き換えることで、読みやすさが向上します:
human_capitals = HumanCapitals.objects.select_related("position", "department__company")
data = [
{
"id": h.id,
"name": h.name,
"position": h.position.name,
"department": h.department.name,
"company": h.department.company.name,
}
for h in human_capitals
]
return JsonResponse(data, safe=False)
ポイント
- 配列や辞書の中身を改行して整理。
- 適切なインデントを使用して構造を明確化。
まとめ
コードレビューは、チームの知見を共有し品質を向上させる機会です。事前にチェックを行うことで、レビューアの負担を減らし、建設的なフィードバックを得られる可能性が高まります。