YOUTRUSTのエンジニアが心掛けているプルリクエストの要点

こんにちは、Webエンジニアの今井です(YOUTRUST / Twitter)。入社して1ヶ月が経過し、徐々にできることも増えてきました。これまではバックエンドのリファクタリングタスクを中心に担当し、7月はフロントエンドのタスクもいただきながら、日々新しいことを学んでいます。

今回のブログでは、プルリクエストについて書いていきます。

コードレビューはプロダクトの品質向上などに繋がる一方で、レビュアーの方には相当な時間や労力をかけることを業務を通じて学びました。レビューしやすいプルリクエストを作ることは、チーム開発においてとても重要です。

そこで、私がYOUTRUSTで学んだレビューしやすいプルリクエストの特徴を紹介していきます。

プルリクエストを作るときに意識していること

単一責務を意識する

1つ1つのプルリクエストの粒度を意識するようにしています。影響範囲が大きすぎるプルリクエストを作ってしまうと、レビュアーが考慮すべきことが増えてしまい、レビューに大きな負担がかかってしまいます。 各プルリクエストの影響範囲、責務を明確にして、関係のない差分が発生する場合は別の新しいプルリクエストを作成するようにしています。

実装背景、関連するPR、issueを記載する

レビュアーがプルリクエストの要点を最初に把握できるように、実装背景や関連するプルリクエストのリンクを説明文に記載するようにしています。 説明文に要点を記載せずにレビュー依頼をしてしまうと、レビュアーの方がタスクの背景を理解するための余分な負担がかかってしまいます。 また現在のレビュアーの方のためだけでなく、将来コードリーディングする際などにプルリクエストを読み返すこともあるかもしれません。説明欄に丁寧な説明を書くことで、将来読み返す方も一目でプルリクエストの内容を確認することができます。

説明欄に要点を記載

マークダウン記法をフル活用する

説明文やコメントの表現を工夫することで、レビュアーの読みやすさが格段に変わることを実感しました。最近知ったことなのですが、他メンバーのプルリクエストを参考にする中で、表形式で記述ができることを知りました。表形式は、特にフロント側で画面の変化が発生する際に、before/afterを一目で確認する際に便利です。 細かい工夫かもしれませんが、マークダウン記法を駆使することで、よりレビューがしやすいプルリクエストを作成することができます。(表形式以外にも箇条書きや水平線の挿入など、レビュアーの方が読みやすくするための工夫は多くできますね。)

表形式でbefore/afterが一目で分かる

質問される前に、説明する

レビュー依頼をする前に、「レビュアーの方にとって分かりづらいかも」「このコードは複雑な処理をしてるからレビューしづらいかも」とレビュアーが疑問に感じそうな点は、コメントをつけるようにしています。レビュアーの方とのコミュニケーションの往復を減らすことは、業務スピードに大きく影響します。

レビュー依頼前にコメントで説明を補足

まとめ

今回はYOUTRUSTで学んだレビューしやすいプルリクエストの特徴を紹介しました。一方で、まだまだ学ぶことは多く、日々先輩エンジニアのプルリクエストを参考にさせていただいています。その中で良いプルリクエストを書くために1つ共通することは、「レビュアーの立場を想像する」ことなのかなと感じています。 レビュアーの立場を想像して、余計な負担をかけず、スムーズにレビューができるプルリクエストを作れると、快適なチーム開発ができると学びました。 もし他にプルリクエストを作る上で意識されていることなどあれば、コメントなどで教えていただけると嬉しいです!

最後に

ここまで読んでいただきありがとうございます! 突然ですが、YOUTRUSTでは定期的にエンジニアイベントも開催しておりますので、ご参加お待ちしております! 応募中のイベントについては以下のリンクをご参照ください!

youtrust.connpass.com