標準コードレビューには何が含まれていますか?


19

私の会社では、どの機能が実装され、どのようなバグが修正されるかについて、コードを書いた人によって送信されたメールでの議論です。そして、メールを受け取ったレビュアーは、コードをレビューし、自分の意見でコードの品質と編集方法を議論します。標準コードレビューには何が含まれていますか?


10
ここでは、どうやらコードレビューの時間はありませんが、結果として生じるねじ込みに対処するのに多くの時間があります。冗談を言っていたらよかったのに。
MetalMikester

回答:


12

私の経験では、ほとんどの正式なコードレビューは簡単であるため、スタイルチェックに発展します。見るべきもののチェックリストを提供するときでさえ、目がグレージングし始めることはかなり簡単です。

ユニットテストのレビューにはより多くの利点があることがわかりました。私が一緒に働いたほとんどの開発者は、適切に単体テストを行う方法を本当に知りません。コードの残りの部分も同様に改善し始めます。ヒントを次に示します。ユーザーに何かを検査するように要求する場合は単体テストではなく、デバッガーで実行するために何かを開始するだけの場合は単体テストではありません。


LOL、単体テストの十分な理解は必須です。そして良いニュースは、テストは単なる常識であるということです。言うよりも理解するのに時間がかかりません...新しい言語を習得するのにかかる時間です。
仕事

ユニットテストのカバレッジが不足しているとき、私は自分で物事を盗み見します。コードレビューで単体テストを見たとき、それが最初に見える場所です。ユニットテストがビジネス要件と賢明なエッジケース(適切な場合はnullをチェックし、値の範囲で境界テストを行っている)を見たら、私ピックをpick めない傾向があります-それはあなた小さなもの選ぶべきだという意味ではありません。それは「証拠がプリンにある」だけです。うまく構築された単体テストに合格していると主張するのは難しいです。
グレッグブルクハルト

6

問題の内容によって異なる傾向があります。多くの場合、それは単純なゴム印です。「ここに問題がありました。この行を見てください。何が間違っているのかは明らかです。ここで修正しました。」「はい、それはかなり明白です。先に進み、チェックインしてください。」

しかし、もっと複雑なことが起こっている場合、通常は次のようになります。

  • TortoiseSVNで変更のチェックを実行し、変更されたファイルのリストを取得します。
  • レビュー担当者をオフィスに持ち込みます。
  • バグ追跡システムのCRを参照用に開いて、問題を説明します。
  • TortoiseSVNのファイルのリストを下に移動し、BeyondCompareで各ファイルを開いて変更を表示します。
  • レビュー担当者が変更を理解していない場合は、あなたが何をしたのか、理由を説明してください。
  • レビューアは、見栄えの悪いものに気付く場合があります。その場合は、変更する必要があるかどうかについて合意に達するまで話し合います。(簡単な変更が必要な場合は、BeyondCompare内のファイルを編集することもできます。)
  • 変更を加えた場合は、再コンパイルしてビルドを確認してください!
  • プログラムを実行して、修正プログラムが実際に機能することをレビュー担当者に示します。
  • チェックインしてください。

4

IMO、コードレビューは機能やバグとは関係ありませんが、コードの品質とそのために書かれたテストに焦点を当てています。

だから、あなたはあなたの仲間の隣に座って、彼にコードを説明してもらうか、コードを取り、それを通過させて、どんな状況が求めようとも。

誰もが同じ基準に基づいてプログラミングする場合、およびfxCopなどのツールを使用してプロセスの一部を自動化する場合に役立ちます。


2

開発者がレビュアーと一緒に座って、コードを1行ずつ説明するコードレビューを好みます。多くの場合、開発者は、レビュー担当者がまだ見たことがないかもしれないという説明を行う際に問題が発生するため、これが私の好みです。また、コードを送信して自分で読んでコメントを書くコードレビューも行いますが、それらは時間がかかる傾向があると思います戻って説明し、2、3ラウンド後に説明し、画面上で私が意味することと開発者が言うことを指摘します。「ああ、ええ、今見ています。」)さらに、「あなたはこれを間違っていました。」

また、コードレビューで標準を実施することも重要ですが、それらを唯一の焦点にすることはできません。

ただし、コードレビュー担当者が満足するか、マネージャー(開発者ではない)が彼または彼女を却下する(コードレビュー担当者も間違っている)まで、コードはプロダクションに送信されません。これは非常に重要です。コードレビューは、プッシュされる前にコードレビュー担当者が最終コードを承認する必要がない限り、付加価値のない単なる官僚的なプロセスです。


私はいつも、彼がレビューのフィードバックで何をするかを開発者に任せることをお勧めします。校閲者は必ずしも最良の知識を持っているわけではなく、同意が必須の場合、校閲者を教育するためにかなりの時間を費やす必要があるかもしれません。ただし、シニア/リード開発者による最終的な「統合」チェックを検討します。
ジョッペ

0

まず、コーディング標準が必要です。これらは単なる構文ではありません。あなたの会社で仕事を始めるとき、彼らはコーディングを始める前にあなたの会社のガイドラインをできるだけ学ばなければなりません。レビュープロセスですべての種類の違反が見つかった場合、次のようになります。

  • 時間の制約により修正されない
  • ガイドラインの価値よりも迷惑であることがわかった

ガイドラインは理にかなっており、違反を見つけてできるだけ簡単にリファクタリングするための適切なツールが必要です。ガイドラインの目標とコードレビューを常に確認する

私の頭の中の目標は、コードを可能な限り均一にし、保守性と読みやすさの問題を見つけることです。副次的な目標は、特定のソフトウェアでより多くの人々を最新の状態にすることです。

私の心の中のガイドラインは、たとえば次のものから成り立っています。

  • 一般的な構文とコーディングのガイドライン(既に存在するものを選択し、自動的にチェックするツールを使用します)
  • 適切な例外処理
  • 適切なロギング
  • 言語のパラダイムの適切な使用(OO言語の場合はソリッド)
  • コンポーネント間の明らかでよく考えられた依存関係(NDependなどのツールを使用)
  • 作業ビルドスクリプト
  • ドキュメントの存在(開発者向けのスタートアップ、インストールマニュアル)
  • 使用する内部ライブラリ
  • 会社の方針
  • 許可されていないサードパーティのツール
  • 単体テストが存在し、失敗しない
  • 90%のコードカバレッジ
  • ...

これを実施すると、コードレビューは、ガイドラインに照らしてチェックされるソフトウェアと以下から構成されます。

  • プログラマーと違反について話し合う
  • 不要な違反を修正する
  • 必要な違反をコメントする
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.