ひびのログ

日々ではないけどログを出力していくブログ

コードレビュー観点

雑に考えてみた。 フロントエンドのコードレビューを前提としているが、観点自体はそれにとどまらないはず。

かっこ内には代表的な概念を書いた。

大観点

  • コード
  • 設計
  • 機能要件
  • 非機能要件
  • テキスト
  • スコープ

中観点の例

  • コード
    • 読みやすいか
    • 正しく書かれているか
    • 保守しやすいか(クリーンアーキテクチャ)
    • 余計なことをしていないか(KISS、YAGNI)
    • コーディングルールに則っているか
    • 世間のベストプラクティスに沿っているか(DRY、SOLID など)
  • 設計
    • 関連するロジックがひとまとまりになっているか・適切に分割されているか
    • ビジネス要件を書き下した構成になっているか
    • 他の箇所と整合性が取れているか
  • 機能要件
    • 仕様通り動くか(フロントエンドにおいては画面表示も)
    • 動作確認が必要か・取れているか
    • エラーハンドリング・異常系の考慮ができているか
    • 曖昧な仕様がないか
  • 非機能要件
    • セキュリティ(XSS、CSRF)
    • パフォーマンス(N+1 問題)
    • マークアップ
    • ユーザビリティ(エラーの通知)
    • アクセシビリティ(フォーカスリング)
  • テキスト
    • 命名が妥当か
    • コードコメントを正しく書いているか・つけすぎていないか
    • ドキュメントを作成・更新しているか
    • レビュー内容で必要な部分に必要な説明がされているか(背景、動作確認の有無など)
  • スコープ
    • 変更目的が一つになっているか
    • スコープ外の変更が含まれていないか
    • スコープは十分小さいか・小さすぎないか

加えて

コードレビューをする側は、コミュニケーションについても気をつけるべきだと考えている。

  • コミュニケーション
    • ポジティブなコミュニケーションができているか
    • HRT を意識できているか
    • コメントを入れた理由を説明しているか
    • なるべく早く対応しているか