View on GitHub

google-engineering-practices

Google's Engineering Practices Documentation Japanese Translation

レビュアのコメントの扱い方

レビューのために CL を提出すると、レビュアはあなたの CL にいくつかのコメントを返してくれることがあります。このページでは、レビュアのコメントを扱うときに知っておくと役に立つことを紹介します。

個人的なものとして捉えない

レビューの目的は、Google のコードベースとプロダクトの品質を維持することです。レビュアがあなたが書いたコードに批判的なコメントを加えるのは、あなた自身やあなたの能力に対して個人的な攻撃をしているからではなく、あなたとコードベースと Google を助けようとしているからだと考えてください。

時には、レビュアが苛立ちを感じてそのいらだちをコメントに表すこともあるかもしれません。それはレビュアにとってよいプラクティスではありませんが、開発者として、あなたはそのようなことがあるという心構えを持たなければなりません。そのようなときには、「レビュアは私に、どんな建設的なことを伝えようとしているのだろう?」と、自分自身に問いかけてみてください。そして、レビュアがその建設的な意見を実際に自分に言ったものとして振る舞ってください。

コードレビューのコメントに怒りを込めて返事をすることは、絶対にあってはなりません。万が一そのようなことをしたとすれば、それは、コードレビューツール上に永遠に記録され続ける、プロフェッショナルとしての重大なエチケット違反です。もしあなたが怒ったりイライラして親切に返事をすることができないのなら、丁寧に返事ができるくらい冷静になるまで、しばらくあなたのコンピュータから離れて散歩をしたり、何か他の仕事をしましょう。

一般に、もしレビュアが建設的で丁寧なやり方でフィードバックを提供しないのであれば、直接相手に会ってそのことを説明してください。もし直接またはビデオ会話で相手と話せない場合には、その時は個人的なメールを送ってください。あなたが嫌なことは何なのか、そして、どんな違ったことをレビュアにしてほしいのかを、優しく丁寧に説明してください。もし相手がこの個人的なディスカッションでも非建設的な返事をしたり、意図した結果が得られないならば、そのときは、あなたのマネージャに適切に解決を依頼します。

コードを修正する

レビュアにあなたのコードで理解できないところがあると言われた場合、あなたの最初の返事は、コード自体をより明確にするものでなければなりません。もしコードが明確にできない場合、コードがそこにある理由を説明するコードコメントを追加してください。もしコメント無意味なものに思われるなら、その場合にのみコードレビューツール上の返事で説明を行うべきです。

レビュアがあなたのコードの一部を理解できなかった場合、将来コードを読んだ他の人も理解できない可能性があります。コードレビューツール上で返事を書いても将来コードを読む人の助けにはなりませんが、あなたが書いたコードを明確にしたり、コードコメントを追加すれば、彼らを助けることができます。

よく考える

CL を書くためにはたくさんの作業が必要になります。レビューのために CL を送信したら、その CL は完了し、それ以上の作業はもう必要ないと確信して、十分満足してしまうことがよくあります。そのため、レビュアからもう少し改善できるかもしれないことがあるというコメントが付いた返事が返ってくると、反射的にコメントが間違っていると考えてしまったり、レビュアは自分を不必要に邪魔をしていると感じたり、レビュアは自分の CL をこのまま提出させるべきだと思ってしまったりしやすいものです。しかし、この点に関しては、あなたがどれだけ強く確信を持っていたとしても、少し立ち止まって一歩下がり、レビュアはコードベース全体と Google にとって価値のあるフィードバックを提供しているのではないか、とよく考えてみてください。あなたが常に最初に自分自身に問いかけるべき質問は、「レビュアーは正しいだろうか?」です。

もしその質問にあなたが答えられないならば、レビュアはコメントをもっと明確にする必要があります。

もしあなたがその質問について十分に考えた上で、それでもあなたが正しいと考えるのであれば、問題を解決するためにあなたが選択した方法が、コードベースとユーザーと Google にとってよりよい方法である理由について説明するための返事を自由に書いてください。多くの場合、レビュアは実際には提案を行っているのであり、何が最善なのかをあなた自身に考えてほしいと思っています。あなたは実際に、ユーザー、コードベース、CL について、レビュアが知らないことを何かを知っているかもしれません。だから、その知識で溝を埋めて、レビュアにより多くのコンテキストを与えてください。普通は、あなたとレビュアの間で、技術的な事実に基づいた何らかの合意を得ることができます。

対立を解消する

いつでも、対立を解消するためにあなたが最初に行うべきことは、レビュアと合意を得るように努めることです。もし合意が得られない場合には、コードレビューの基準を読んでください。ここには、そのような状況で従うべき原則が書かれています。