どのようにしてコードに対して建設的な批判を得ることができますか?


8

私のチームがコードレビューを行うことはめったにありません。これは、主に十分な時間がないため、人々はエネルギーを欠いており、そうするつもりだからです。しかし、私のコードを読んだときに、人々が私のコードについてどう思うかを本当に知りたいです。このようにして、他の人が私のコードをどのように考え、調整するかを理解し、読みやすくしています。

だから私の質問は、どうすれば私のコードに対して建設的な批判を得ることができるのですか?私の目的は、より読みやすいコードを記述できるように、人々の考え方を理解することです。


5
コードレビューを行います。他の人にコードをレビューしてもらいます。
2012年

4
コードレビュースタック交換質問を投稿する前に、サイトのFAQをよくお読みください。
yannis

2
他に何も機能しない場合は、少し前に書いたコードを読んでください。古いコードは、他の誰かが書いたかのように見え、目的を明確にします。
superM 2012年

1
あなたは意味するか、正または建設的
Blrfl 2012年

回答:


8

コードレビューのある場所とない場所で働いていたので、新しい雇用を検討する上で私の問題の1つになりました。緊急事態を回避するために節約できる時間は、本番に入るまで問題が表面化しなかったため、コードレビューに費やす時間よりもはるかに長くなります。そしてそれは、コードレビューで問題を見つけることがどれほどストレスが少ないかについては触れていません。

チームが説得力を必要とする場合でも、小規模から始めることができます。コードのレビューを希望するので、そこから始めます。1人以上の同僚に1時間ほど会ってもらい、フィードバックを求めていると思われるコードをいくつか調べてもらいます。フィードバックが主に否定的である場合、防御的にならないでください。本当にメモを取り、提案された変更を加えることを検討してください。しかし、まだprodに送信していない(または率直に言って変更を加えない)何かに対してそれを行います。デスクで非公式にそれを行うこともできます。誰かに電話をかけて、「ここで私に最適な解決策があるかどうかわかりません。どう思いますか?」

徐々にコードレビューの価値を見始めるようにするもう1つの方法は、1週間に1回のセッションで、全員がレビューのためにコードの一部を提示しなければならないことです(または、1人に1人ずつローテーションしますが、レビューが必要な種類のコードの複雑さ)。初めてドーナツやベーグルを持ってきてね!誰かに直接話すのに不快感を感じる場合や、相手が守りすぎると思う場合は、上司にメールを送ってもらい、コメントを整理してもらい、レビュー対象の人がコードについて誰が言ったかわからないようにします。率直に言って、自分のコーディング能力を自分で評価することで、批判をどれほど真剣に受け止めるべきかを判断するのに役立つため、私は何を言ったかを直接知りたいと思います。

コードをレビューする人が見つからない場合は、自分と一緒に座って、コードを説明し、なぜ誰かがそこにいるかのように自分がしていることをしているのかを説明してください。コードの目的を説明する過程で問題を見つけたのは、コードを作成した人がどれほど頻繁にいるかに驚いています。また、一種のチェックリストとして要件ドキュメントを確認し、必要なものを見逃していないことを確認するのにも役立ちます。


私が尊敬している主要な同僚の多くが締め切り/制作の問題で忙しすぎるので、私はおそらくあなたが言ったように小さく始めなければなりません。自分で座って、自分のコードが次にできる最小限のことのように見えることを説明する最後の代替ソリューション。それは良い考えで、Rubber Duck Debuggingとして一度読んだことを覚えています。en.wikipedia.org/wiki/Rubber_duck_debugging
burnt1ce 2012年

5

私の意見では、上級の開発者やアーキテクトと一緒に座ってコード(またはそのコードを見て、彼らが実際に何をしたかを確認する)に取って代わることができる豪華なツールはありません。とは言っても、ユニットテストコードでは再利用可能な方法で考える必要があり、コードを読みやすくするためのパターンを組み込む必要があります(より適切にテストされたコードの利点が追加されます)。


1
IMHOユニットテストでは、ユニットテスト可能な方法で考える必要があります。それ以上でもそれ以下でもありません。これによりコードが再利用可能になるとよく言われますが、私の意見では、それはある種の都市伝説です。
Doc Brown、

ここに私の2セントと、再利用性の側面の背後にある私の推論があります。これまでに行ったほとんどのユニットテストは、モックオブジェクトを使用して処理されていました。このため、後でソフトウェアをテストする方法を考える必要がありますが、オブジェクト間のインターフェースについて考えるのにも役立ちます。これらのインターフェースは、モックオブジェクトが偽造するものであり、IMHOは、より再利用可能なコードのパスに導く可能性があります(ただし、これは一種の芸術です)。無駄のないインターフェースを明確に設計できれば、簡単にモックして、それからより良いコードを得ることができます。
abellina

2

コードレビューのための優れたツールはありますか?私たちのグループでも同様の問題がありました。Reviewboardサーバーのインストールには少し時間がかかり、コードレビューへの参加が急増しました。コードが簡単になったときに、人々がコードにコメントすることを好むことがわかりました。


2

私の経験では、コードの品質に関して努力する価値があるので、コードレビューを行うために時間をかけることを本当に検討する必要があります。チームでコードレビューを選択できず、人々の考えを理解したい場合は、ペアプログラミングが選択肢の1つになるかもしれません。入力している内容について即座にフィードバックが得られます-インスタントレビューのようなものです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.