以前から課題として認識していたコードレビューのあり方について、先日チームで新たな試みとしてコードレビュー会を実施しました。先輩エンジニアの考え方、知識、技術を吸収できる貴重な機会でした!
今回は、その取り組みに至った背景、実際に行ったこと、そしてコードレビュー会を通して得られた学びや気付きについて新卒1年目エンジニアの目線でお話したいと思います。
コードレビュー会実施の背景
以前のコードレビューでは、以下のような問題がありました。
- レビュー対象のコード量が多いため、担当者は時間をかけてチェックする必要があり負担が大きかった
- 機能面での指摘が主となり、実装に関する小さな悩みや疑問を気軽に相談できる機会が少ない
このような状況を打破し、将来的な修正コストを削減、コードの品質向上、知識共有、チーム全体の技術力向上に繋げるため、コードレビュー会という形でより密なコミュニケーションを図ることにしました。
コードレビュー会でやったこと
実施内容
- 対象:担当した実装の中から1機能
- 参加者:基本はコーダー同士(従来のレビュー担当者は任意参加)
- 形式:オンラインミーティング(1回あたり30分〜1時間以内)
- タイミング:コードレビュー会 → 単体テスト → 従来通りのレビュー
→単体テスト終了後のリファクタリングは、再度単体テストが必要になるため、テスト前にレビューを行うことで手戻りを減らす狙い
流れ
- 実装者が実装概要と具体的な内容を説明
- 参加者がコードを読みながら、気になった点や改善点を質問・指摘
従来のレビューの流れ
- 単体テスト後、レビュー担当者に確認を依頼
- レビュー担当者によるチェック
- コードの機能面、不要な処理などをチェック
- 修正が必要な箇所があればコメントを残す
- 修正内容に関する質問
- メッセージでのやり取り
- 必要に応じて直接質問
- 修正
- 再度レビュー担当者に確認
- 承認後、マージ
コードレビュー会を通して学んだこと
コードレビュー会を通して、これまで意識が薄れていた様々な点に気付かされました。
- セキュリティ面への意識: コードの安全性を考慮することの重要性を改めて認識しました。
- コードの可読性: スペースの有無など、コードの可読性を意識することで、他者がコードを理解しやすくなることを学びました。
- 変数の利用: 変数を使うべき場面とそうでない場面について、可読性を考慮した判断基準を学びました。
コードレビュー会のメリット
コードレビュー会に参加したことで多くのメリットを感じることができました。
その中での一番の収穫は、先輩エンジニアの思考回路を学べたことです!
- 先輩エンジニアからの学び: 先輩エンジニアの方々が、どのような点に着目してコードを書いているのか、直接質問したり、議論したりする中で、その思考回路を垣間見ることができました。これは、新卒の私にとって非常に貴重な学びでした。
- 読みやすいコードの書き方: 新卒で技術力、コードの基礎がないため、これまで綺麗な書き方ができていませんでしたが、機能面以外にも読みやすいコードの書き方を知ることができました。
- コードの意図理解: コードを読むだけではどういった意図で書かれているのかわかりづらかったものが、直接説明してもらうことでとても理解が深まり、勉強になりました。
- 手戻りの削減: 自分の実装担当の1機能だけをコードレビューしてもらう形でしたが、一度指摘いただいたことは次に活かせるため、とても有益でした。これにより従来のレビューでの手戻りが削減できたと思います。
- 質問しやすい雰囲気: 小さな悩み・疑問だと文面で送ることを躊躇していましたが、この会では先輩エンジニアの方に気軽に質問することができました。先輩方が優しく丁寧に教えてくださったので、安心して質問することができとてもありがたかったです。
まとめ
コードレビュー会は、チーム全体の技術力向上に繋がる非常に有益な取り組みだと感じました。今後はこの経験を活かし、自身のスキルアップに繋げていきたいと思います。
最後までお読みいただきありがとうございました。