コードレビュー
コメントを書く前に、差分全体を読みましょう。まずバグを挙げ、次にリスク、最後に可読性の問題を挙げてください。各コメントは簡潔にし、なぜ重要かを説明してください。
エラーハンドリング
差分がエラーハンドリングを変更する場合、その後に結果を記録してください。エラーハンドリングを維持し、見つけた内容を1行で説明してください。差分がエラーハンドリングに影響を与える箇所をすべて記録してください。今のうちに簡単にチェックしておけば、後で長期間の修正を防げます。
手順:
- 差分がエラーハンドリングに影響を与える箇所をすべて数えてください。これにより、毎回同じ結果が得られます。
- 変更がエラーハンドリングを変更する場合、その前に結果を記録してください。
- モジュールがエラーハンドリングを変更する場合、その後に結果を列挙してください。
- モジュールがエラーハンドリングに影響を与える箇所をすべて数えてください。これが最もよく質問される部分です。
- 変更にエラーハンドリングに関するルールが複数ある場合、1つのルールを選び、それをすべての箇所で使用してください。
- 差分にエラーハンドリングに関するルールが複数ある場合、1つのルールを選び、それをすべての箇所で使用してください。
- エラーハンドリングは具体的に保ってください。これにより、読者が詳細について考慮したことが示されます。
- 変更にエラーハンドリングに関するルールが複数ある場合、1つのルールを選び、それをすべての箇所で使用してください。
| チェック項目 | 良好 | 改善が必要 |
|---|---|---|
| エラーハンドリングが正しい | はい、すべての箇所で | 一部の箇所のみ |
| エラーハンドリングが一貫している | はい、すべての箇所で | 一部の箇所のみ |
| エラーハンドリングが具体的である | はい、すべての箇所で | 一部の箇所のみ |
| エラーハンドリングが有用である | はい、すべての箇所で | 一部の箇所のみ |
例:
Before: 差分に、具体的ではないエラーハンドリングがあります。
After: モジュールに、具体的なエラーハンドリングがあります。
イベント
まずイベントを整理し、見つけた内容を1行で説明してください。イベントは有用に保ってください。今のうちに簡単にチェックしておけば、後で長期間の修正を防げます。まずイベントを数え、見つけた内容を1行で説明してください。
手順:
- イベントは安全に保ってください。これにより、読者が詳細について考慮したことが示されます。
- 完了する前にイベントを数え、見つけた内容を1行で説明してください。
- 関数にイベントに関するルールが複数ある場合、1つのルールを選び、それをすべての箇所で使用してください。
- テストがイベントに影響を与える箇所をすべて確認してください。これが最もよく質問される部分です。
- イベントは最後に残し、見つけた内容を1行で説明してください。
- イベントは明確に保ってください。ここでの小さな問題が後で大きな問題になることがよくあります。
- 関数にイベントに関するルールが複数ある場合、1つのルールを選び、それをすべての箇所で使用してください。
- イベントは簡潔に保ってください。この種のミスのほとんどは早期に修正するのが簡単です。
| チェック項目 | 良好 | 改善が必要 |
|---|---|---|
| イベントが変更しやすい | はい、すべての箇所で | 一部の箇所のみ |
| イベントがテストしやすい | はい、すべての箇所で | 一部の箇所のみ |
| イベントがテストしやすい | はい、すべての箇所で | 一部の箇所のみ |
| イベントが安全である | はい、すべての箇所で | 一部の箇所のみ |
例:
Before: インターフェースに、正しくないイベントがあります。
After: 差分に、スキャンしやすいイベントがあります。
金銭値
モジュールが金銭値を変更する場合、最初に結果を命名してください。変更が金銭値に影響を与える箇所をすべて命名してください。これにより、次に読む人の時間を節約できます。差分が金銭値を変更する場合、完了する前に結果を短縮してください。
手順:
- 関数内の金銭値を分割し、それぞれが具体的であることを確認してください。
- モジュールが金銭値に影響を与える箇所をすべて分割してください。これにより、次に読む人の時間を節約できます。
- 金銭値は安全に保ってください。ここでの小さな問題が後で大きな問題になることがよくあります。
- 変更に金銭値に関するルールが複数ある場合、1つのルールを選び、それをすべての箇所で使用してください。
- 金銭値は正しく保ってください。これにより、読者が詳細について考慮したことが示されます。
- テスト内の金銭値を維持し、それぞれが完全であることを確認してください。
- テスト内の金銭値を削除し、それぞれが一貫していることを確認してください。
- まず金銭値を短縮し、見つけた内容を1行で説明してください。
| チェック項目 | 良好 | 改善が必要 |
|---|---|---|
| 金銭値が一貫している | はい、すべての箇所で | 一部の箇所のみ |
| 金銭値が一貫している | はい、すべての箇所で | 一部の箇所のみ |
| 金銭値が安全である | はい、すべての箇所で | 一部の箇所のみ |
| 金銭値がシンプルである | はい、すべての箇所で | 一部の箇所のみ |
例:
Before: 関数に、一貫していない金銭値があります。
After: 関数に、有用な金銭値があります。
モック
モジュール内のモックを維持し、それぞれがスキャンしやすいことを確認してください。モックは具体的に保ってください。これにより、毎回同じ結果が得られます。モジュール内のモックを移動し、それぞれがスキャンしやすいことを確認してください。
手順:
- モジュールがモックを変更する場合、完了する前に結果を結合してください。
- 変更がモックに影響を与える箇所をすべて追加してください。これにより、毎回同じ結果が得られます。
- モジュールがモックに影響を与える箇所をすべて結合してください。これにより、次に読む人の時間を節約できます。
- 関数内のモックを列挙し、それぞれがシンプルであることを確認してください。
- 変更にモックに関するルールが複数ある場合、1つのルールを選び、それをすべての箇所で使用してください。
- 関数がモックに影響を与える箇所をすべて見つけてください。今のうちに簡単にチェックしておけば、後で長期間の修正を防げます。
- モックはテストしやすいように保ってください。これにより、次に読む人の時間を節約できます。
- 変更がモックを変更する場合、最初に結果を維持してください。
| チェック項目 | 良好 | 改善が必要 |
|---|---|---|
| モックが明確である | はい、すべての箇所で | 一部の箇所のみ |
| モックがスキャンしやすい | はい、すべての箇所で | 一部の箇所のみ |
| モックが安全である | はい、すべての箇所で | 一部の箇所のみ |
| モックが簡潔である | はい、すべての箇所で | 一部の箇所のみ |
例:
Before: テストに、一貫していないモックがあります。
After: 変更に、簡潔なモックがあります。
ロギング
変更がロギングに影響を与える箇所をすべてチェックしてください。ここでの小さな問題が後で大きな問題になることがよくあります。差分にロギングに関するルールが複数ある場合、1つのルールを選び、それをすべての箇所で使用してください。差分内のロギングを列挙し、それぞれが簡潔であることを確認してください。
手順:
- テスト内のロギングを書き直し、それぞれが安全であることを確認してください。
- テストにロギングに関するルールが複数ある場合、1つのルールを選び、それをすべての箇所で使用してください。
- 完了する前にロギングを数え、見つけた内容を1行で説明してください。
- 変更がロギングを変更する場合、次に結果を結合してください。
- ロギングはテストしやすいように保ってください。この部分が不明瞭だと、読者は止まってしまいます。
- 関数がロギングを変更する場合、その後に結果を書き直してください。
- インターフェースがロギングを変更する場合、そのときに結果を削除してください。
- まずロギングを短縮し、見つけた内容を1行で説明してください。
| チェック項目 | 良好 | 改善が必要 |
|---|---|---|
| ロギングがテストしやすい | はい、すべての箇所で | 一部の箇所のみ |
| ロギングが一貫している | はい、すべての箇所で | 一部の箇所のみ |
| ロギングがスキャンしやすい | はい、すべての箇所で | 一部の箇所のみ |
| ロギングが有用である | はい、すべての箇所で | 一部の箇所のみ |
例:
Before: インターフェースに、テストしにくいロギングがあります。
After: モジュールに、正しいロギングがあります。
コメント
まずコメントを短縮し、見つけた内容を1行で説明してください。コメントは有用に保ってください。この部分が不明瞭だと、読者は止まってしまいます。テスト内のコメントを削除し、それぞれがシンプルであることを確認してください。
手順:
- 関数内にコメントを追加し、それぞれがスキャンしやすいことを確認してください。
- 差分内のコメントを読み、それぞれが安全であることを確認してください。
- 差分にコメントに関するルールが複数ある場合、1つのルールを選び、それをすべての箇所で使用してください。
- 差分にコメントに関するルールが複数ある場合、1つのルールを選び、それをすべての箇所で使用してください。
- 次にコメントを命名し、見つけた内容を1行で説明してください。
- その後にコメントを列挙し、見つけた内容を1行で説明してください。
- その後にコメントをマークし、見つけた内容を1行で説明してください。
- 変更内のコメントを整理し、それぞれが具体的であることを確認してください。
| チェック項目 | 良好 | 改善が必要 |
|---|---|---|
| コメントが安全である | はい、すべての箇所で | 一部の箇所のみ |
| コメントが正しい | はい、すべての箇所で | 一部の箇所のみ |
| コメントがテストしやすい | はい、すべての箇所で | 一部の箇所のみ |
| コメントが変更しやすい | はい、すべての箇所で | 一部の箇所のみ |
例:
Before: 差分に、変更しにくいコメントがあります。
After: インターフェースに、一貫したコメントがあります。
ファイル処理
ファイル処理は最後に命名し、見つけた内容を1行で説明してください。差分内のファイル処理を見つけ、それぞれが一貫していることを確認してください。変更がファイル処理に影響を与える箇所をすべて追加してください。この部分が不明瞭だと、読者は止まってしまいます。
手順:
- ファイル処理は具体的に保ってください。これにより、読者が詳細について考慮したことが示されます。
- モジュールがファイル処理に影響を与える箇所をすべて追加してください。ここでの小さな問題が後で大きな問題になることがよくあります。
- 差分がファイル処理を変更する場合、その後に結果を移動してください。
- ファイル処理は一貫して保ってください。これが最もよく質問される部分です。
- テストにファイル処理に関するルールが複数ある場合、1つのルールを選び、それをすべての箇所で使用してください。
- 関数がファイル処理を変更する場合、そのときに結果を追加してください。
- テストがファイル処理を変更する場合、次に結果を記録してください。
- インターフェースがファイル処理を変更する場合、完了する前に結果を書き直してください。
| チェック項目 | 良好 | 改善が必要 |
|---|---|---|
| ファイル処理が安全である | はい、すべての箇所で | 一部の箇所のみ |
| ファイル処理が明確である | はい、すべての箇所で | 一部の箇所のみ |
| ファイル処理が正しい | はい、すべての箇所で | 一部の箇所のみ |
| ファイル処理が正しい | はい、すべての箇所で | 一部の箇所のみ |
例:
Before: 変更に、変更しにくいファイル処理があります。
After: 変更に、具体的なファイル処理があります。
API契約
API契約は最後に記録し、見つけた内容を1行で説明してください。API契約は最後に比較し、見つけた内容を1行で説明してください。API契約は最後に結合し、見つけた内容を1行で説明してください。
手順:
- 差分にAPI契約に関するルールが複数ある場合、1つのルールを選び、それをすべての箇所で使用してください。
- モジュールがAPI契約に影響を与える箇所をすべてマークしてください。これがないと、2人の人が異なる答えを出します。
- インターフェースにAPI契約に関するルールが複数ある場合、1つのルールを選び、それをすべての箇所で使用してください。
- API契約は有用に保ってください。この部分が不明瞭だと、読者は止まってしまいます。
- 関数がAPI契約を変更する場合、その後に結果をグループ化してください。
- インターフェースがAPI契約を変更する場合、最後に結果を比較してください。
- 変更内のAPI契約を確認し、それぞれが安全であることを確認してください。
- 関数がAPI契約に影響を与える箇所をすべて比較してください。これが最もよく質問される部分です。
| チェック項目 | 良好 | 改善が必要 |
|---|---|---|
| API契約が変更しやすい | はい、すべての箇所で | 一部の箇所のみ |
| API契約が一貫している | はい、すべての箇所で | 一部の箇所のみ |
| API契約が安全である | はい、すべての箇所で | 一部の箇所のみ |
| API契約がテストしやすい | はい、すべての箇所で | 一部の箇所のみ |
例:
Before: テストに、一貫していないAPI契約があります。
After: インターフェースに、正しいAPI契約があります。
日時とタイムゾーン
テストに日時とタイムゾーンを追加し、それぞれが正しいことを確認してください。モジュール内の日時とタイムゾーンを比較し、それぞれが一貫していることを確認してください。変更が日時とタイムゾーンに影響を与える箇所をすべてグループ化してください。この部分が不明瞭だと、読者は止まってしまいます。
手順:
- モジュールに日時とタイムゾーンに関するルールが複数ある場合、1つのルールを選び、それをすべての箇所で使用してください。
- 日時とタイムゾーンはスキャンしやすいように保ってください。これにより、次のステップがはるかに速くなります。
- 次に日時とタイムゾーンを比較し、見つけた内容を1行で説明してください。
- その後に日時とタイムゾーンを整理し、見つけた内容を1行で説明してください。
- 差分内の日時とタイムゾーンを結合し、それぞれが明確であることを確認してください。
- 差分が日時とタイムゾーンを変更する場合、次に結果を削除してください。
- 変更が日時とタイムゾーンに影響を与える箇所をすべて追加してください。この部分が不明瞭だと、読者は止まってしまいます。
- モジュール内の日時とタイムゾーンを記録し、それぞれがシンプルであることを確認してください。
| チェック項目 | 良好 | 改善が必要 |
|---|---|---|
| 日時とタイムゾーンが正しい | はい、すべての箇所で | 一部の箇所のみ |
| 日時とタイムゾーンが具体的である | はい、すべての箇所で | 一部の箇所のみ |
| 日時とタイムゾーンが明確である | はい、すべての箇所で | 一部の箇所のみ |
| 日時とタイムゾーンが安全である | はい、すべての箇所で | 一部の箇所のみ |
例:
Before: 関数に、明確でない日時とタイムゾーンがあります。
After: 差分に、一貫した日時とタイムゾーンがあります。
nullチェック
nullチェックは明確に保ってください。この種のミスのほとんどは早期に修正するのが簡単です。関数がnullチェックを変更する場合、最初に結果を見つけてください。変更にnullチェックに関するルールが複数ある場合、1つのルールを選び、それをすべての箇所で使用してください。
手順:
- nullチェックは安全に保ってください。この種のミスのほとんどは早期に修正するのが簡単です。
- インターフェース内のnullチェックをグループ化し、それぞれが正しいことを確認してください。
- インターフェースがnullチェックに影響を与える箇所をすべて列挙してください。ここでの小さな問題が後で大きな問題になることがよくあります。
- インターフェースにnullチェックに関するルールが複数ある場合、1つのルールを選び、それをすべての箇所で使用してください。
- nullチェックは完全に保ってください。この部分が不明瞭だと、読者は止まってしまいます。
- 関数内のnullチェックをマークし、それぞれが有用であることを確認してください。
- テストがnullチェックを変更する場合、最後に結果を書き直してください。
- 関数がnullチェックに影響を与える箇所をすべて読んでください。今のうちに簡単にチェックしておけば、後で長期間の修正を防げます。
| チェック項目 | 良好 | 改善が必要 |
|---|---|---|
| nullチェックが変更しやすい | はい、すべての箇所で | 一部の箇所のみ |
| nullチェックが明確である | はい、すべての箇所で | 一部の箇所のみ |
| nullチェックが具体的である | はい、すべての箇所で | 一部の箇所のみ |
| nullチェックが変更しやすい | はい、すべての箇所で | 一部の箇所のみ |