オブジェクト指向設計実践ガイド
第一章
オブジェクト指向設計とは依存関係を管理することであり、オブジェクトが変更を許容できるようなかたちで依存関係を構成するためのコーディングテクニックが集まったもの。
実用的な設計とは、未来を推測するのではなく未来を受け入れるための選択肢を保護するもの。動くための余地を設計者に残すもの
設計の目的
- 後にでも設計をできるようにすること(変更コストの削減)
オブジェクト指向の区分
原則
- SOLID
パターン
- Design Patterns
アジャイル設計の場合に正しいこと
- 顧客は自身の求めるソフトウェアを目で見るまではっきりとはわからない。そのためソフトウェアは小さな追加の繰り返しで作っていくべきである。
- 前もって全体の詳細設計を作ることにはまったく何の意味もないこと。
- アプリケーションの完成時期は誰にも予測はできない。
昔のプログラマーの生産コストを測る方法
- コードの行数(これはおかしい。冗長に書いた方が生産性高いと思われるから)
1.4
手続き型言語は非オブジェクト指向言語
2章
クラス作成で考えることで、第一に重要なのはシンプルであること
クラス作成には振る舞いがあるかどうかで判断する(例:ギアにはチェーンリングとコグ、そして比がある)