Upgrade to Pro — share decks privately, control downloads, hide ads and more …

約30年の時を超えたデザインパターンの価値 -現代のスクラムチームの開発者がGoFのデザインパターンを学び直し得たもの- / The Timeless Quality of GoF Design Patterns

えわ
January 11, 2024

約30年の時を超えたデザインパターンの価値 -現代のスクラムチームの開発者がGoFのデザインパターンを学び直し得たもの- / The Timeless Quality of GoF Design Patterns

Yusuke Uchida - 約30年の時を超えたデザインパターンの価値 -現代のスクラムチームの開発者がGoFのデザインパターンを学び直し得たもの-
https://confengine.com/conferences/regional-scrum-gathering-tokyo-2024/proposal/19191/30-gof

えわ

January 11, 2024
Tweet

More Decks by えわ

Other Decks in Technology

Transcript

  1. GoFのデザインパターンとは GoF (Gang of Four) 本で紹介された23個の設計カタログ 建築家Christopher Alexanderからの影響 “オブジェクト指向システムにおいて重要でかつ 繰り返し現れる設計を、それぞれ体系的に名前づけし、

    説明を加え、評価したものである。我々の⽬的は ⼈びとが効果的に利⽤できるような形式で設計経験を 整理することである。そのために、もっとも重要な デザインパターンをいくつか⽂書化し、カタログの 形で表⽰した。” 『オブジェクト指向における再利⽤のためのデザインパターン』より ※強調は発表者による 6
  2. 転機: Certified Scrum Developer (CSD) 研修 10 https://www.jp.agilergo.com/online-csd-bernstein-202306 David Bernstein

    • RSGT 2023 Keynote Speaker • 『レガシーコードからの脱却』著者 研修の半分がデザインパターン 様々な問いで理解を揺さぶられ 学び直しへ
  3. Target Audience / Learning Outcome Target オブジェクト指向⾔語で開発を⾏ってる スクラムチームの開発者で • GoFのデザインパターンをこれから学ぼうか悩んでいる

    • GoFのデザインパターンを学んだが活かし⽅に悩んでいる • 設計原則の適⽤⽅法に悩んでいる Learning Outcome GoFのデザインパターンは単なる実装例のカタログではなく、 設計原則を学ぶための最⾼の教材だと感じた学び⽅を伝え、 GoFのデザインパターンを学んでみよう、学び直してみよう と思ってもらえる 15
  4. 各書籍での⾔及 54 ※は本編後の付録などで⾔及されているもの パターン名 分類 CSD研修 by David Bernstein オブジェクト

    指向のこころ アジャイル ソフトウェア 開発の奥義 パターン指向 リファクタリング ⼊⾨ Head First デザイン パターン 第2版 採⽤率 Abstract Factory ⽣成 ◯ ◯ ◯ 60% Builder ⽣成 ※ ◯ ※ 20% Factory Method ⽣成 ◯ ◯ ◯ ◯ ◯ 100% Prototype ⽣成 ※ ※ 0% Singleton ⽣成 ◯ ◯ ◯ ◯ ◯ 100% Adapter 構造 ◯ ◯ ◯ ◯ - 80% Bridge 構造 ◯ ◯ ◯ ※ 60% Composite 構造 ◯ ◯ ◯ 60% Decorator 構造 ◯ ◯ ◯ ◯ 80% Façade 構造 ◯ ◯ ◯ ◯ 80% Flyweight 構造 ※ 0% Proxy 構造 ◯ ◯ ◯ 60% Chain of Responsibility 振る舞い ◯ ※ 20% Command 振る舞い ◯ ◯ ◯ 60% Interpreter 振る舞い ◯ ※ 20% Iterator 振る舞い ◯ 20% Mediator 振る舞い ◯ ※ 20% Memento 振る舞い ※ 0% Observer 振る舞い ◯ ◯ ◯ ◯ 80% State 振る舞い ◯ ◯ ◯ ◯ 80% Strategy 振る舞い ◯ ◯ ◯ ◯ ◯ 100% Template Method 振る舞い ◯ ◯ ◯ ◯ ◯ 100% Visitor 振る舞い ◯ ◯ ※ 40%
  5. 2.さまざまな設計原則の適⽤⽅法を学ぶ 設計の幅が広がり、語彙が増え設計意図の説明⼒が⾼まる 58 書籍 取り上げている設計原則 オブジェクト指向のこころ オープン・クローズドの原則、依存関係逆転の原則、 リスコフの置換原則、流動的要素のカプセル化、 インターフェースに対するプログラミング アジャイルソフトウェア

    開発の奥義 SOLID原則、パッケージ設計の原則 Head Firstデザインパターン 第2版 カプセル化、インターフェースに対するプログラミング、 継承より委譲、疎結合設計、 オープン・クローズドの原則、依存関係逆転の原則、 デメテルの法則、Tell Donʻt Ask、単⼀責任の原則
  6. 次の沼へ: Christopher Alexanderの⾔葉 “逆説的だが、現実に役⽴っているパタンそのものを否定できるほど⾃由に なってこそ、⽣き⽣きとした建物ができることが分かる。 そして結局、ランゲージを⽤いる⼈⾃⾝が⾃由で無我である場合に限って、 ⽣き⽣きとした建物になる。そのような場合のみ、⾃分のイメージに 驚かされることなく、現実にあるがままの⼒を認識できるのである。 だが、その時点ではもうランゲージを必要としない。⾃分のイメージに 影響されたり歪められたりせず、現実に存在するさまざまな⼒を⾒ぬく

    ことができ、それらの⼒だけを頼りに建物をつくることができる- そこまで⾃分⾃⾝を解放しさえすれば、もはや完全にパタンなしで⾃由に 建物をつくることができる-つまり、パタンに込められた知識、さまざまな ⼒が現実にどう作⽤するかについての知識が、すでに⾃分⾃⾝のものに なっているからである。” 『時を超えた建設への道』より ※強調は発表者による 75