プルリクエストのレビュー方法
By JoeVu, at: 2023年1月24日15:00
Estimated Reading Time: __READING_TIME__ minutes


プルリクエストの受信とレビューは、ソフトウェア開発プロセスの重要な部分です。プルリクエストとは、あるブランチから別のブランチにコード変更をマージする要求であり、多くの場合、開発者のリポジトリフォークからメインリポジトリへの要求です。プルリクエストにより、開発者はプロジェクトへの変更を提案でき、その後、レビュー、議論を行い、承認または拒否することができます。
この記事では、プルリクエストのレビュープロセスと、レビューを包括的で有益なものにするために取るべき手順について説明します。
問題を理解する
プルリクエストとは何か、そしてなぜ重要なのかを理解することが重要です。プルリクエストとは、開発者から、あるブランチから別のブランチにコード変更をマージする要求です。これは、開発者がプロジェクトに貢献することを可能にしつつ、変更がメインブランチにマージされる前にレビューされることを保証するため、重要です。
質問するべきこと:
- 元の課題/機能は何ですか?新しい機能はどのように動作しますか?
- 問題を再現するにはどうすればよいですか?
- 変更が導入されなかった場合どうなるか?
変更内容を知る
プルリクエストをレビューする際、レビューアーは最初に加えられた変更を確認する必要があります。これには、コードの変更だけでなく、追加または変更されたドキュメントも含まれます。レビューアーは、コミットメッセージとコメントも確認して、変更が適切で、十分に説明されていることを確認する必要があります。
質問するべきこと:
- この変更は、問題を完全に、または部分的に解決しますか?
- すべてのコミットメッセージは意味がありますか?
- コードは十分にテストされていますか?単体テストはありますか?テストはすべてのケースをカバーしていますか?
変更の影響
次に、レビューアーはプルリクエストがプロジェクトに与える影響を確認する必要があります。これには、追加または変更されたテストだけでなく、プロジェクトに影響を与える可能性のあるその他の変更も含まれます。コード変更のパフォーマンスも確認することが重要です。これは、プロジェクトの安定性とスケーラビリティに影響を与える可能性があるためです。
質問するべきこと:
- 他の機能/コードへの変更の副作用は何ですか?
- 変更がロールバックされた場合どうなるか?
- この変更は既存のスキーマとデータベースを移行しますか?
- 他のテストに影響を与えますか?
コメントをする
レビューアーが変更が適切であることを確認したら、プルリクエストにコメントを残して、変更を承認または拒否する必要があります。懸念事項や質問がある場合は、プルリクエストにコメントを残して変更について議論する必要があります。
レビューアーが変更について建設的なフィードバックを提供することが重要です。これには、潜在的な問題点を指摘すること、および行うことができる改善点を提案することが含まれます。このフィードバックは、開発者がコードを改善し、プロジェクト全体を改善するために不可欠です。
質問するべきこと:
- このコードは良いですか、悪いですか?コーディングスタイルに従っていますか?なぜですか?
- どのように改善できますか?
- 他の解決策は何ですか?
- レビューアーが理解できないコードの部分はありますか?
従うべきルール/手順がいくつかあります:
- 「Clean Code」の哲学を理解する
これは、すべてのコーダーが優れたコード/製品を提供するために知っておくべき基本的なことであり、この本はクリーンコードを書くための役立つガイドラインを提供します。
- ベストプラクティスを理解する
すべてのフレームワークには、コミュニティと経験豊富な開発者によって推奨される独自のベストプラクティスがあります。例:Django Two ScoopsはDjangoベストプラクティスのための最良の本です
- フレームワークとチームのコーディングスタイルに従う
チーム全体で同じコーディングスタイルを持つことは、レビュープロセス、開発プロセス、デバッグプロセスにおいて多くの利点をもたらします。誰もが他人のコードとアイデアを簡単に理解し、取得できます。一方、すべてのメンバーはフレームワークのコーディングスタイルに従う必要があるため、すべてが一貫性があります。
- PR所有者が変更に対して単体テストを作成していることを確認する
テストは、変更のセキュリティと正確性の保証です。テストがないと、新しい更新プログラムはバグが発生します。
- コードが最適化されていることを確認する
これは、特定のプルリクエストを確認するために必須です。以下の質問をすることで、レビューアーはより良い洞察を得ることができます。
- これはメモリ使用量、パフォーマンスの面でどうですか?
- より良い解決策はありますか?
- 冗長なリクエスト/クエリはありますか?
- これはメモリ使用量、パフォーマンスの面でどうですか?
- 建設的なフィードバックを提供する
- 肯定的なことから始める。個人の仕事の肯定的な側面を強調することからフィードバックを始めましょう。これは、続く批判の衝撃を和らげるのに役立ちます。
- 何が間違っていたかを説明する。個人の仕事のいかなる問題についても、具体的に説明してください。
- 解決策を提供する。状況を改善する方法についての提案を行い、個人にリソースまたは情報を提供して、進歩を支援します。
- 広い心を持つ。個人の反応に耳を傾け、他の視点も考慮する意思を持ちましょう。
- 肯定的な言葉で締めくくる。達成された進歩を認め、個人の仕事の肯定的な側面を強化します。
フィードバックの提供は決して容易ではありません、人々は
- 肯定的なことから始める。個人の仕事の肯定的な側面を強調することからフィードバックを始めましょう。これは、続く批判の衝撃を和らげるのに役立ちます。
- レビューは学習を意味します。真剣に取り組む
プルリクエストをレビューする際には注意深く、学習のプロセスを真剣に受け止めましょう。これは、開発者がすでに学習した他人の変更を学習またはレビューしている際に、勤勉で誠実であることを思い出させるために頻繁に使用されます。
要約すると、プルリクエストのレビューはソフトウェア開発プロセスの重要な部分です。レビューアーは、変更を確認し、プロジェクトへの影響を評価し、建設的なフィードバックを提供することが重要です。これらの手順に従うことで、レビューアーはプルリクエストが包括的で有益であることを確認できます。