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

オブジェクト指向のこころ: 第5章 / DESIGN PATTERNS EXPLAINED: ...

オブジェクト指向のこころ: 第5章 / DESIGN PATTERNS EXPLAINED: chapter-5

会社で「オブジェクト指向のこころ」の読書会をやっています

hideki kinjyo

September 06, 2021
Tweet

More Decks by hideki kinjyo

Other Decks in Programming

Transcript

  1. ͸͕͖͠ 本書中では「パターンランゲージ=デザ インパターン」として扱われている感じ がありますが、GoF本の中で「アレグザ ンダーのパターンと我々のパターンには 異なることがある」と説明されていま す。 そのため、本資料中では、前者(アレグ ザンダー、オリジナル)をパターンラン ゲージ、後者(GoF、ソフトウェア)をデ

    ザインパターンと呼称します。 ※GoF本には「Alexanderの⾒⽅によれ ば、本書に⽰したパターンはパターン⾔ 語を構成してはいない」と記載がある オブジェクト指向における再利⽤のためのデザインパターン 『6.3 パターンのコミュニティ』
  2. ΞϨάβϯμʔͷ໰୊ҙࣝ • アレグザンダーは、建築家として「よい建築」を⽬指した • 彼の思う良い建築: ⽣き⽣きとした建築 • ⼈々が「⼼地よい」と感じるもの • 「⼈⼯都市」への批判

    • 居住者が歴史の中で拡張していった「⾃然都市」と⽐べて、計 画ありきで作られた「⼈⼯的な都市」には豊かさが⽋けている • 前者は「ツリー」の構造をとり、後者は「セミラチス」の構造 を取る
  3. ύλʔϯͷܕ • 各パターンはフォーマット(必須要素)を持つ • パターンランゲージの⾰新性の1つは、「定型フォーマットに落とし、類型化 したこと」にもある(と思う • まぁ何か「起承転結がハッキリしていて分かりやすくなる」的な感覚ある • パターンの描写に必要な4つの要素

    • パターン名: 名前があることで、議論をしやすくなったり「抽象」に集中できる • パターンの⽬的: 解決したい問題や、その⽂脈 • 解決⽅法: 設計の要素やそれらの関連についての抽象的(汎⽤的)な説明 • 考慮する必要がある制約、フォース: パターンのもたらす結果やトレードオフ
  4. ιϑτ΢ΣΞ΁ͷύλʔϯͷ༌ೖ • ݐஙքͰͷख๏Ͱ͋Δύλʔϯϥϯήʔδ • ͔͜͜ΒɺʮύλʔϯΛఆΊͯʯʮͦΕΒͷཁૉΛ૊Έ߹͛ͯ࡞ͬ ͯΈΔʯɺʮར༻ऀͱઃܭऀ͕ձ࿩Ͱ͖ΔΑ͏ʹͳΔʯͱ͍͏Ξ ΠσΟΞΛಘͨ • ΦϒδΣΫτࢦ޲ϓϩάϥϛϯάͰͷ࣮ફ •

    “We propose a radical shift in the burden of design and implementation, using concepts adapted from the work of Christopher Alexander” (http://c2.com/doc/oopsla87.html) • ύλʔϯϥϯήʔδͷߟ͑ํΛΦϒδΣΫτࢦ޲ʹ࢖ͬͯΈΑ͏ʂ ύλʔϯΛ࡞ͬͯΈΑ͏ʂͱ͍͏஥͕ؒूͬͯίϛϡχςΟʹͳΔ • ίί͔ΒGoFຊͳͲ͕ੜ·Εͨ
  5. ΞϨάβϯμʔͷ ύλʔϯϥϯήʔδͱͷൺֱ • GoFは「カタログからパターンを選び、組み合わせ ることで、全体を組み上げる」ことを⽬的としてい ない • GoFは「解決⽅法」をより詳細に記述している • GoFはパターンを利⽤する際の「優先順位」を定義

    していない IMO: 全体的に、建築とソフトウェアという領域を⽐較した際に「模索的 な段階にある」ことから、踏み込みが⽢いとも⾔えるような未熟さも感じ られる気がする 第6章 終わりに
  6. Appendix: Web • デザインパターンの使い⽅を パタン・ランゲージとの⽐較から考える / design-pattern- usage-inspired-by-pattern-language - Speaker

    Deck https://speakerdeck.com/hgsgtk/design-pattern-usage-inspired-by-pattern-language • ソフトウェア開発とパタン・ランゲージ再考 https://www.slideshare.net/kkd/ss-131755865 • パターン・ランゲージ⼊⾨講座(Pattern Language Innovators Summit) https://www.slideshare.net/takashiiba/pattern-language-innovators-summit / (159) • トークセッション映像「パターン・ランゲージの使い⽅徹底解説 & 体験ワークショッ プ」(井庭崇研究室) - YouTube https://www.youtube.com/watch?v=wsiCq4puvDI • デザインパターンFAQ https://www.hyuki.com/dp/dpfaq.html
  7. Appendix: ॻ੶ • パターン、Wiki、XP 時を超えた創造の原則 WEB+DB PRESS plus | 江渡

    浩⼀郎 https://www.amazon.co.jp/dp/B07JJN5NBY/ • パターン・ランゲージ:創造的な未来をつくるための⾔語 (リアリティ・プラス) | 井 庭 崇, 中埜 博, ⽵中 平蔵, 江渡 浩⼀郎, 中⻄ 泰⼈, ⽻⽣⽥ 栄⼀, 井庭 崇 https://www.amazon.co.jp/dp/4766419871 • パタン・ランゲージ―環境設計の⼿引 | クリストファー・アレグザンダー, 平⽥ 翰那 https://www.amazon.co.jp/dp/4306041719 • オレゴン⼤学の実験 (SD選書) | クリストファー・アレグザンダー, 宮本雅明 https://www.amazon.co.jp/dp/4306051285