More Related Content
More from Kazuki Murahama
More from Kazuki Murahama (10)
Code retreatの心得
- 3. シンプルな設計のための4つのルール
1. PASS ALL TESTS
すべてをテストをパスする
2. CLEAR, EXPRESSIVE, & CONSISTENT
きれいで、分かりやすく、一貫性があること
3. DUPLICATES NO BEHAVIOR OR CONFIGURATION
重複はだめ
4. MINIMAL METHODS, CLASSES, & MODULES
関数やクラス、モジュールは小さく
- 4. OOの原則(SOLID)オブジェクト指向設計原則
単一責任の原則(SRP:the Single Responsibility Principle)
クラスを変更する理由は1つ以上存在してはならない。
変更理由が2つあるということは、責任(役割)も2つある。
役割を複数もつクラスはもろい
複数の役割がある場合、一つの変更に対する影響が大きい
保守で違う人が修正したら簡単に壊れる
クラスは密度が濃くて固いのが一番
1クラス1責任、ピュアであること
責任を見極めるには、”変更理由の観点から眺める”
TDDによりかなり早い段階でSRP違反を発見できる
- 7. OOの原則(SOLID)オブジェクト指向設計原則
依存関係逆転の原則(DIP:the Dependency Inversion Principle)
上位のモジュールは下位のモジュールに依存してはならない。どちらのモジュールも「抽象」
に依存すべきである。
「抽象」は実装の詳細に依存してはならない。実装の詳細が「抽象」に依存すべきである。
OOプログラミングでは「方針」「詳細」とも抽象に依存させることで、悪しき依存関係を逆転で
きる。
アプリケーションの方針を決めていて、他に対して影響を与えるモジュール(=言うなれば「偉
い」ヒト)は上位。
それにより抽象と実装の詳細は完全に切り離され、コードの保守がずっと楽になる。
例 : http://d.hatena.ne.jp/asakichy/20090128/1233144989
- 13. ピンポンペア
1. Aさんがテストを書いて、失敗するのを確かめる
2. Bさんがテストを合格するための実装を行う
3. 今度はBさんが次のテストを書き、失敗するのを確かめる
4. Aさんが次のテストを合格するための実装を行う
- 14. 参考文献
Global Day Coderetreat
http://p.tl/jSbD-
オブジェクト指向設計原則
http://d.hatena.ne.jp/asakichy/20090122/1232879842
ペアプログラミングのやりかた
http://p.tl/bC1h-