🌟

【心構え編】初心者エンジニアのためのコードレビュー入門【ざっくり】

2024/12/10に公開

コーダーからフロントエンドエンジニアになって約6ヶ月が経ちました。
Web制作からWebアプリ開発の分野へジョブチェンジし、念願のチーム開発にも携われるようになり、大変ながらも楽しく働いています。

現在開発しているアプリでは、フロントエンドエンジニアは私と先輩、0.5人月のエンジニアの計3人で開発しています。ありがたいことに、入社1ヶ月過ぎたころからコードレビューに参加させてもらえるようになりました。

実は、コードレビューをする環境に行きたくて転職したのですが、いざ自分がレビュワーの立場になると、「自分が他人のコードを見ていいのだろうか?」という不安でいっぱいでした。特に、エンジニア歴が圧倒的に短い私が、先輩エンジニアのコードをレビューするなんて……と、かなり緊張しました。

そんな中、8月に参加した「フロントエンドカンファレンス北海道2024」で学んだことや、先輩からのアドバイスを基に、自分が気をつけていることを備忘録としてまとめてみました。もし、コードレビューに悩む方がいたら、少しでも参考になれば幸いです!

自分のことは棚に上げてレビューする

コードレビュー中に、「これ、自分もよく指摘されるな」と感じることがよくあります。そういった部分を他人に指摘しても良いのだろうかと悩むかもしれませんが、レビューでは自分のことは棚に上げることが大事です。
コードレビューはあくまで、プロダクトの品質を高めるための作業です。自分が過去にミスした経験があるからこそ、その指摘は価値があると考えましょう!

細かい箇所の指摘もする

「このコード、ちょっと気になるけど、指摘するほどでもないかな……」と迷うことはありませんか?
確かに、そのままでも問題なく動く場合が多いですが、将来の改修や再利用を考えると、気になった箇所をその場で指摘することが大事です。
特に、理由が不明瞭な実装や説明不足の箇所は、放置すると技術的負債を生む可能性があります。疑問点があれば、その場で質問することでチーム全体の理解も深まります。

迷ったときは伝える! 間違いを恐れない

レビュー中に、「この実装で良いのだろうか……?」と疑問を抱くことがあるかもしれません。その際には、自分の考えを積極的に伝えましょう!
たとえ間違った指摘でも、実装者の意図を知るきっかけになりますし、そのやり取りが記録に残ることで、将来コードを見返した際にとても役立ちます。レビューは意見を交換する場でもあるので、恥ずかしがらずに思ったことを共有してみてください。

レビューは間違いを指摘するだけではない

これは「フロントエンドカンファレンス北海道2024」で学んだ内容ですが、レビューでは以下のようなことも重要だと知りました。

  • 「わからないことは正直に聞く」
  • 「このコード、勉強になりました!」というポジティブなコメントを残す
  • 「これ、ChatGPTに聞いてみました」という柔軟なアプローチを取る
    バグを指摘するだけがレビューの目的ではありません。他人のコードを深く理解することで学び、自分のスキルを高める絶好の機会です。

一次レビューでも十分助かる

もし、自分のレビューで大きな改善案が出せなくても、タイポや不要なコード(使わなくなったCSSなど)を指摘するだけでも十分意味があります。特に複数のレビュワーがいる場合、一次レビューで簡単なミスが修正されると、次のレビュワーの負担が大きく軽減されます。小さなことでも積極的に指摘することで、チーム全体に貢献できるのです。

最後に

以上が私がコードレビュー時に考えていることです。
私自身まだまだ未熟ですが、この経験を積み重ねていく中で、チームの役に立てるエンジニアになりたいと思っています。もし同じようにコードレビューに悩んでいる方がいれば、この内容が少しでも参考になれば嬉しいです!

今回の記事の内容は、冒頭でも述べたように先輩エンジニアからのアドバイスと、「フロントエンドカンファレンス北海道2024」のLTで紹介されたことを参考にして執筆しました。
ありがとうございます🙇

コードレビュアー「見習い」になったぞ!! by 中村 優太
https://speakerdeck.com/nayuta24/kodorebiyua-jian-xi-i-ninatutazo

デザインシステムとコンポーネント指向によるフロントエンド開発プロセスの革新
https://speakerdeck.com/nrslib/innovation-in-frontend-development-processes-through-design-systems-and-component-oriented-architecture

Discussion