はじめに
- 社内勉強会を行うこととなったため、資料も兼ねて記事として軽くまとめる
- 題材は以下書籍とする
対象エンジニア
- ジュニアクラスエンジニア
- 初心に帰って学び直したいエンジニア
用語
テスト容易性
- ソフトウェアの動作検証を自動的かつ円滑に実行できるかどうかの度合い
- モジュール間の結合度を下げ、外部依存を切り離すことによるテスト環境構築の容易化
- バグの早期発見や安全なリファクタリングを担保するための、検証可能なシステム設計
再利用性
- 過去に作成したプログラムの部品を、別の機能やシステム開発にそのまま流用できる性質
- 汎用的なロジックを独立したモジュールとして抽出することによる、開発効率の向上と重複の排除
- 既存の信頼できるコードを活用し、新たなバグの混入を防ぐための保守性の高いアーキテクチャ
単純原理
- コードから不要な複雑さを徹底的に排除し、意図が明確で読みやすい状態を保つ簡潔な構造
- 将来の不確実な拡張を見越した過剰な作り込みを避ける、必要最小限のシンプルな実装
- 開発者の学習コストや保守の負担を最小化するための、システム設計における最重要の価値観