← 開発プロセス・品質 用語集 →

📑 この章の目次

title: レビュー文化・設計 icon: 🏗️ card_desc: コードレビューの作法と変更しやすいコードの設計 — 結合度・凝集度・DRY/YAGNI/KISS・心理的安全性で、チームで保守できるコードを目指す slug: 13-review-design

13 レビュー文化・設計 — 人間の目と、変更しやすいコード

第12章の自動検査(テスト・Lint・型チェック)を全通過しても、「設計が適切か・他の人が読めるか・要件を満たすか」は機械には分かりません。これを担うのが人間の目(コードレビュー)と、そもそも変更に強いコードの設計です。本章は本書の最終章として、両者の作法を扱って締めくくります。


一言でいうと

「動く」コードを超えて「他の人が保守できる」コードを目指すのが本章のテーマです。コードレビューはミス探しでなく知見を共有し合う場であり、設計の黄金則は「ゆるい結合・強い凝集」。レビューの作法(見る側・見られる側)と、良い設計の指標(結合度・凝集度)・原則(DRY・YAGNI・KISS)を扱います。


1. なぜレビューと設計の作法が必要なのか

自動検査でも防げない問題

第12章のテスト・Lint・型チェックは強力ですが、扱えるのは「機械が判定できる問題」だけです:

これらをカバーするのが**人間の目(コードレビュー)**と、そもそも変更しやすい設計の2つです。

個人開発とチーム開発

個人開発では「自分さえ分かればいい」で済みがち。しかし:

「動く」でなく「他の人が保守できる」を目指すのが、本章の作法です。


2. コードレビューとは

言葉の意味

何を見るか

レビューで見る主な観点:

ミス探しでなく「知見共有の場」

レビューは単なるバグ探しでなく、チームでコードの質を底上げし合う場です。「なぜこう書いたか」を言葉にする過程で、書いた側もレビューする側も学び、チームの設計方針が揃っていきます。


3. 🔑 レビューの作法(見る側・見られる側)

見る側の作法

見られる側の作法

🔑 心理的安全性

これらの作法の根底にあるのが心理的安全性psychological safety/サイコロジカル・セーフティ)——「間違えても・指摘しても恥を受けない」状態です。「初心な質問ができない」「指摘すると怒られる」状態ではレビューは形骸化し、問題が表面化しません。良いコードより前に安全に意見を言える空気が、レビュー文化の前提です。


4. 設計とは —— 変更しやすいコード

「動く」と「変更しやすい」は違う

コードは「動けばよい」でなく「後から変更しやすいか」が問われます。要件は変わり、バグは出、機能は増える。そのたびに触りにくいコードは、変更のたびに別の場所を壊し(→ 第12章 回帰)、開発を重くします。

結合度と凝集度

変更しやすさを語る2つの指標:

「ゆるい結合・強い凝集」(loose coupling / high cohesion)が、変更しやすい設計の黄金則です。

単一責任・関心の分離

💡 両者の違い: 関心の分離は「見た目・データ処理」等の大きなくくり(層)を分ける視点、単一責任1つの部品の中の仕事を1つに絞る小さな視点、と捉えると分かりやすいです。


5. 🔑 良い設計の指標と原則

3つの原則

早すぎる抽象化の罠

「将来の拡張性」を考えすぎて早すぎる抽象化premature abstraction/過早抽象化)に走ると、逆に変更しにくくなります。抽象は同じパターンが3回現れてから引く、が現場の目安です(→ YAGNI)。先回りした抽象は、現実の要求とズレて邪魔になります。

設計も「なぜ」を残す

良い設計には意図(なぜこうしたか)が残る必要があります。コメントや文書で「ここは〇〇の理由で分離した」等を残すことで、将来の変更者が意図を壊さずに拡張できます(→ 第11章「引き継ぎの前提」)。


6. なぜ「レビュー文化・設計」が開発の作法なのか

作法として位置づけられる理由

面接・実務での意味


7. よくある落とし穴と対処

落とし穴 何が起きるか 正しい対応
レビューをスキップ 見落とし・属人化・知識が偏在 小さなPRで必ずレビュー経由。自分1人でもセルフレビュー
人格批判になる 指摘されなくなり問題が隠れる コードに向けて理由を添える・心理的安全性を守る
巨大なPR レビュー負荷高・見落とし増 1機能=1PR・変更を小さく分割
「動けばよい」 変更のたびに別も壊れ・負債化 結合度・凝集度を意識し保守しやすさを見る
早すぎる抽象化 現実とズレた複雑さ・かえって変更困難 3回現れてから抽象化(YAGNI)
意図を残さない 将来の変更者が誤って設計を壊す 「なぜこうしたか」をコメント・文書で残す

💡 個人開発でも設計は効く: 「チームじゃないからレビューも設計も不要」は罠です。3ヶ月後の自分・将来の協働・面接での説明力、いずれにも「変更しやすいコード」と「自分をレビューする習慣」は効いてきます。本書で扱ったCI/CD・テスト・Git・レビュー・設計は、すべて「他の人が(未来の自分も含めて)安心して触れるコード」を目指す1本の線で繋がっています。


まとめ

🎉 おわりに: 全14章を通じて、CI/CD・Git・API・セキュリティ・コンテナ・データベース・ログ・キャッシュ・バージョニング・デバッグ・品質・レビュー・設計という「現場の常識」を1本の線で繋ぎました。個々の技術は変わっても、根底の作法 —— なぜそうするか・他の人とどう協働するか —— は変わりません。この教科書が、点々としていた知識をつなぐ橋になれば幸いです。