はじめに
- 社内勉強会を行うこととなったため、資料も兼ねて記事として軽くまとめる
- 題材は以下書籍とする
対象エンジニア
- ジュニアクラスエンジニア
- 初心に帰って学び直したいエンジニア
用語
ポリシーと実装の分離
- 「何を実現したいか」という方針(ポリシー)と、「どのように実現するか」という具体的な処理(実装)の分離
- ポリシーを実装から独立させることで、実装変更時の影響範囲を最小限に抑える設計
- ビジネスルールと技術的な処理を分離し、保守性・再利用性・変更容易性を高める原則
インタフェースと実装の分離
- 利用側が必要とする機能の定義(インタフェース)と、その機能を実現する具体的な処理(実装)の分離
- 利用側を実装の詳細から切り離すことで、実装の差し替えや機能追加を容易にする設計
- 抽象に依存し具体に依存しない構造による、疎結合で拡張性の高いアーキテクチャの実現
参照の一点性
- 同じ情報を複数箇所で保持せず、信頼できる唯一の管理場所(Single Source of Truth)への集約
- 重複した情報による不整合や更新漏れを防止し、データの一貫性を維持する設計
- 定数・設定値・業務ルール・データなどを一元管理し、保守性と変更容易性を向上させる原則