# レビュー

## ガイド

<https://google.github.io/eng-practices/>

## コメントするときの注意事項

<https://developers-jp.googleblog.com/2019/12/respectful-reviews.html>

## べからず集

### レビューア（レビューする人）べからず集

* もやっと指摘するべからず（もう少しわかりやすくなど）。改善案と具体例を示してすべし。

### レビューイ（レビューされる人）べからず集

* フィールドの更新を忘れずべからず。
* フォントの統一を忘れるべからず。

## コードレビュー

こっちは自動でやる

• コードフォーマット

• 眼鏡を外してレビュー

• 記述が分かりやすいか

• セキュリティ担保

• パフォーマンス担保

リリースしたら価値が届く、本来レビューすべきだったもの

• コードが仕様を満たしているか

• 仕様に考慮漏れが無いか

• エンバグは無いか

• 良い設計をしているか

## 詳細設計レビュー

### 管理者としての懸念事項

1. I/F誤りによる混乱
2. 低性能による性能改善工数増加
3. 機能バグによる手戻り
4. 低保守性による工数増加
5. 低拡張性による機能制限
6. セキュリティ考慮不足による被害
7. DB定義変更による混乱
8. 要件実装漏れによる追加開発
9. データ破壊による業務へのインパクト
10. コミュニケーションロスの発生

### レビューする視点

1. 見た目の（体裁）の読みやすさ
2. 入出力関係の正しさ
3. データ操作の正しさ
4. 認識・理解誤りの発生の少なさ
5. 要件の網羅度
6. 実装・保守の容易さ
7. 論理的な正しさ
8. プロジェクトルールの遵守度
9. 機能使用の安全性
10. 動作時の性能

## コードレビュー

### 秘訣

1. レビューの観点を明確にすること
2. 我が身に返ることを恐れずに指摘すること
3. 何故悪いコードなのかを論理的に説明すること
4. 良いコードについて共通認識を持つこと
5. 小さい単位でレビューを繰り返すこと
6. 指摘は素直な気持ちで受け入れること
7. 指摘は人格否定でないことを理解すること

### チェックリスト

* ブランチのテーマとは関係のないコードが含まれていないか
* コミットメッセージは簡潔かつ分かりやすいか
* 責務に応じてリファクタリングされているか
* メソッドを不必要にpublicにしていないか
* コードは読みやすいか/分かりやすいか
* クラス/メソッド/変数の名前は適切か
* 既存コードとの重複はないか
* 既存コードに影響を及ぼさないか
* コメントが必要な箇所はないか
* デバッグ用のコードは残っていないか
* もっとよいコードにできないか
* ファイル名は適切か
* 不要なファイルをコミットしていないか
* typoはないか
* コーディング規約に則っているか
* バリデーションは適切か
* セキュリティ上のリスクはないか
* フレームワークのレールから外れていないか
* ライブラリで代替できる処理はないか
* 将来的な負債は予期されないか
* トランザクションが必要な箇所はないか
* キャッシュが必要な箇所はないか
* 不必要なSQLを発行していないか
* テストケースは十分か
* 境界条件で正常に動作するか
* エラーハンドリングは必要な箇所で行なわれているか
