22. Design Patterns
Elements of Reusable Object-Oriented Software
• ソフトウェア分野のベストセラー (1995) by
GoF(Gang of Four)/Erich Gamma, Richard Helm,
Ralph Johnson and John Vlissides, foreword by
Grady Booch.
• 建築家、Christopher Alexander の「パターン⾔語」
をWard Cunningham/Kent Beck/Grady Booch らが
最初に先導(Hillside Group)。
• 後のアジャイル(XP, Scrum)にもつながる。
• 厳格なフォーマット(いくつか流儀がある)に則って
いる。
• 過去に繰り返し使われた、典型的な設計解を、「⽂
脈」(Context)「問題」(Problem)「解決策」
(Solution)の組みにして、名前(Name)をつけたもの。
22
89. Conway’s Law
“organizations which design systems … are constrained
to produce designs which are copies of the
communication structures of these organizations”
— M. Conway
”組織の構造がソ
フトウェアの構
造に反映する“
であれば、よい組織構造をつくろう。
(Inverse Conway Maneuver) 89
99. 99
分割の仕⽅
• 顧客に分かる機能で切る。
• 層で切らない。
• ビジネスの価値が分かる。
“These days we do not program software
module by module; We program software
feature by feature.”
—Mary Poppendieck
by Akiyah“Divide by Value”
—Tom Gilb
116. 116
• Write a test
• Watch it fail
• Make it pass
• Refactor
(improve)
• Repeat until
done
T
D
D
• テストを書く
• 失敗することを確認
• 通過させる
• リファクタリング(改善)
• 繰り返す