デザインパターンの使い方を パタン・ランゲージとの比較から考える / design-pattern-usage-inspired-by-pattern-language

デザインパターンの使い方を パタン・ランゲージとの比較から考える / design-pattern-usage-inspired-by-pattern-language

Object Oriented Conference 2020 にて発表した内容です。

88964b936e864ca7d326272eaa70fa9a?s=128

Kazuki Higashiguchi

February 16, 2020
Tweet

Transcript

  1. © - BASE, Inc. X デザインパターンの使い⽅を パタン‧ランゲージとの⽐較から 考える . .

    Object Oriented Conference - @hgsgtk
  2. https://fortee.jp/object-oriented-conference-2020/proposal/11ec9777-ea5c-48b8-81c5-f9b840d89548

  3. © - BASE, Inc. デザインパターンの使い⼿の “間違い” “デザインパターンを⾒る場合、たいてい の⼈はそのパターンが提供する解決策を 重視します。(中略)しかし、これを前提 にすると、間違った⽅向に進んでしまう

    のです。” アラン‧シャロウェイ, ジェームズ‧R‧トロット著∕村上雅章訳 『オブジェクト指向のこころ』 10.4 デザインパターンの使⽤ https://www.amazon.co.jp/dp/4621066048
  4. © - BASE, Inc. 分量上仕⽅ない現象とも⾔える “Alexander のパターンは扱う問題を強調 しているが、我々のデザインパターンは解 決法についてより詳細に記述している。” ErichGamma、RichardHelm、RalphJohnson、

    JohnVlissides著∕本位⽥真⼀、吉⽥和樹監訳 『オブジェクト指向における再利⽤のためのデザインパター ン改訂版』 6.3 パターンのコミュニティ https://www.amazon.co.jp/dp/4797311126
  5. © - BASE, Inc. どう “間違えて” いる? “問題そのものを理解することなしに、問題領 域の中からパターンが適⽤できそうな部分を探 し出すというアプローチを取ってしまうと、何

    をするかは⾒当がつくものの、いつそれを使う のかや何故それを使うのかといったことが判ら ないままになってしまうわけです。” アラン‧シャロウェイ, ジェームズ‧R‧トロット著∕村上雅章訳 『オブジェクト指向のこころ』 10.4 デザインパターンの使⽤
  6. © - BASE, Inc. “正しく使う” ヒントはないか “Christopher Alexander は、建築物や社会に存 在するパターンを初めて研究した建築家で、それ

    らを⽣成するための「パターン⾔語」を開発し た。我々は彼の本に何度も勇気づけられてきた。” ErichGamma、RichardHelm、RalphJohnson、 JohnVlissides著∕本位⽥真⼀、吉⽥和樹監訳 『オブジェクト指向における再利⽤のためのデザインパター ン改訂版』 6.3 パターンのコミュニティ
  7. © - BASE, Inc. 使い⽅をどのように考えるか • GoFが⼤きな影響をうけた Christoper Alexander のパタン‧ランゲージを知ることで、デザインパ

    ターンが何を⽬的とし、解決するのかがわかるの ではないか • そこから、どのようにデザインパターンと付き 合っていくか を探れるのではないか
  8. © - BASE, Inc. About me • BASE BANK, Inc.

    / Dev Division / Tech Lead • PHP, Go, Python, AWS etc • 関連発表 • 「デザインパターンを出⾃から深く理解する」 / PHPカン ファレンス沖縄 2019 前夜祭 • 「ブランコの⽐喩はどこから来たのか」 / 第142回 PHP勉強 会 Kazuki Higashiguchi (@hgsgtk)
  9. 東野⾼等学校事務室 - 投稿者⾃⾝による作品, CC 表⽰-継承 4.0, https://commons.wikimedia.org/w/ index.php?curid= による パタン‧ランゲージを知る

  10. © - BASE, Inc. Christopher Alexander https://en.wikipedia.org/wiki/ Christopher_Alexander • 1936年ウィーン出⾝の都市計画

    家‧建築家 • 主なキーワード • 「パタン‧ランゲージ」 • 「無名の質(Quality Without A Name)」 https://www.amazon.co.jp/dp/ 
 https://www.amazon.co.jp/dp/ https://www.amazon.co.jp/dp/ https://www.amazon.co.jp/dp/ X https://www.amazon.co.jp/dp/
  11. © - BASE, Inc. アレグザンダーが追い求めた建築像 “すべての建築の⽬的、その幾何学的構成の⽬的と は、⽣き⽣きとした場所をもたらすことである。建 築の中⼼的課題は、⼈が⽣きるに値する暮らしを送 れるように、⽣き⽣きとした⼼地よさ、深い満⾜— 時には刺激—を維持し、促進するような構造を想像

    することである。このような⽬的が忘れ去られたと き、語るに⾜る建築など全く存在しない。” Christopher Alexander 著 『The Battle for the Life and Beauty of the Earth: A Struggle Between Two World-Systems』 https://global.oup.com/academic/product/the-battle-for-the-life-and- beauty-of-the-earth-9780199898077?cc=jp&lang=en&
  12. ⻑坂 ⼀郎 著 『クリストファー‧アレグザンダーの思考の軌跡―デ ザイン⾏為の意味を問う』 https://www.amazon.co.jp/dp/4395320465 “デザインの究極的な⽬標は形だ”

  13. © - BASE, Inc. たとえば、やかんをデザインするとする コンロ 家族 家 社会的 情勢

    やかん ⼯場 やかん の材料 やかんは様々な状況に取り囲まれている
  14. © - BASE, Inc. デザイン⾏為を観察する枠組み コンテクスト = 求める形を取り囲む世界の状況全て 形 コンロ

    家族 家 社会的 情勢 やかん ⼯場 やかん の材料
  15. ⻑坂 ⼀郎 著 『クリストファー‧アレグザンダーの思考の軌跡―デ ザイン⾏為の意味を問う』 Ⅱ デザインの⾒⽅ https://www.amazon.co.jp/dp/4395320465 “すべてのデザインの問題は、次の⼆つの 実在の間に適合性をもたらそうとする努

    ⼒から始まる。その⼆つの実在とは、求 める形とそのコンテクストである。”
  16. © - BASE, Inc. コンテクストと形を適合させる コンロ 家族 家 社会的 情勢

    やかん ⼯場 やかん の材料
  17. © - BASE, Inc. デザイン問題の定義 ⻑坂 ⼀郎 著 『クリストファー‧アレグザンダーの思考の軌跡―デザイン⾏為の意味を 問う』

    Ⅱ デザインの⾒⽅ コンテクスト 形 要求 適合 • コンテクストとは求める形に対して要求条件 (⼒)を提⽰してくるもの • 要求という⼒(フォース)に形を適合させようと する努⼒のことを、デザインと呼ぶ
  18. © - BASE, Inc. (補⾜)デザインの三つの段階 .現実世界の段階(無⾃覚な状況) .イメージの段階(⾃覚的な状況) .形式的操作の段階(記号的な状況) クリストファー‧アレグザンダー 著∕稲葉

    武司, 押野⾒ 邦英 訳 『形の合成に関するノート/都市はツリーではない』 6 プログラム
  19. © - BASE, Inc. (補⾜)現実世界の段階 コンテクスト 形 要求 適合 https://photohito.com/photo/

    /?cid=kinarino_presses 求める形でじかに触れ合うことを通じてコンテクス トに適合する形を求める 現実 Cons) : 時間‧コストというコンテクスト 2: 情報共有、個⼈の感覚の世界
  20. © - BASE, Inc. (補⾜)イメージの段階 コンテクスト 形 要求 適合 イメージの世界の中でデザインが進んでいく

    現実 コンテクスト 形 イメージ https://archi.fukuicompu.co.jp/products/architrendzero/download/ zumen/04_heimenzu.pdf Cons) : 間接的であるため間違える可能性 2: 処理対象の情報量増加に耐えられない
  21. © - BASE, Inc. (補⾜)形式的操作の段階 コンテクスト 形 要求 適合 より⼀般的で抽象的な記号で表す、⾼度な抽象概念

    を操作することで適合する 現実 コンテクスト 形 イメージ 形式的操作 コンテクスト 形
  22. クリストファー‧アレグザンダー再考 | 難波和彦 http://db.10plus1.jp/backnumber/article/articleid/1378/ “彼は形とコンテクストをすべて記号化し、デザイ ナーの経験や勘に頼っているこれまでの曖昧なプロ セスに代えて、デザイン‧プロセスを誰もが理解で きるようにグラスボックス化‧⺠主化しようとし た。その後アレグザンダーの⽅法は⼤きく転回する が、デザイン‧プロセスのグラスボックス化‧⺠主

    化をめざすという⽬標は現在に⾄るまで変わってい ない。”
  23. “It was important from the beginning, because one of the

    characteristics of any good environment is that every part of it is extremely highly adapted to its particularities. That local adaptation can happen successfully only if people (who are locally knowledgeable) do it for themselves.” Keynote Speech to the OOPSLA Convention by Christopher Alexander https://www.patternlanguage.com/archive/ieee.html
  24. © - BASE, Inc. (補⾜)思考の変遷:ツリー構造からセミラチス構造へ 1964. 『形の合成に関するノート』 • 数学的に解ける問題 •

    要求条件を細分化 • ツリー構造に還元 http://www.girlwonder.com/tag/cybernetics 1965. 『都市はツリーではない』 • 「⼈⼯都市」を批判、ツリー構造とな る • 「⾃然都市」は、⼀つの場所が複数 の役割を同時に担うセミラチス構造 https://www.researchgate.net/figure/Semilattice-a-and-Tree-Structures-b-Source-A-City-is-Not-a-Tree-4_fig1_333821711
  25. クリストファー‧アレグザンダー再考 | 難波和彦 http://db.10plus1.jp/backnumber/article/articleid/1378/ “建設的ダイアグラムの中には、状況が変化してもく り返し現われるものがある。それをパタンとして抽 出し、パタンのネットワークすなわちパタンによっ て綴られた⾔語としてセミラチスな環境をつくり出 そうとするのがパタン‧ランゲージである。”

  26. © - BASE, Inc. パタン‧ランゲージ • 建築において繰り返し現れる構造を再利⽤しやす い形式にまとめたもの • 利⽤者と設計者の共通⾔語(ランゲージ)として

    使うことで、利⽤者が⾃分⾃⾝で建築の設計を⾏ い、本当に望んだ建築を実現できるようになるこ とを⽬指した • コンフリクトから開放された都市の幾何学的関係 を求めようとした
  27. © - BASE, Inc. パタン‧ランゲージの構造 パタンはどれも同⼀のフォーマットにまとめられる コンテクスト パターン名 問題 解決

    結果 井庭 崇著,編集∕中埜 博, ⽵中 平蔵, 江渡 浩⼀郎, 中⻄ 泰⼈, ⽻⽣⽥ 栄⼀ 『パター ン‧ランゲージ: 創造的な未来をつくるための⾔語 (リアリティ‧プラス)』第3 章 政策⾔語=政策デザインのパターン‧ランゲージをつくる フォース の対⽴‧葛藤 (=コンフリクト) フォース の対⽴‧葛藤 の解消
  28. © - BASE, Inc. パタン‧ランゲージは3つの部からなる CɾΞϨάβϯμʔஶʗฏా ᷨಹ༁ ʰύλϯɾϥϯήʔδ―؀ڥઃܭͷखҾʱ͋Δύλϯɾϥϯήʔδ 「町」 「建築」

    「施⼯」 都市の⼤きな配置を考えるための⼤きなパ ターン 敷地の空間にどのように建物を配置すべきか というパターン 建物の構造‧材料、柱‧壁、床‧天井などの ⼀つ⼀つの構造を決めるためのパターン
  29. © - BASE, Inc. パタンは⾃然⾔語で記述される CɾΞϨάβϯμʔஶʗฏా ᷨಹ༁ ʰύλϯɾϥϯήʔδ―؀ڥઃܭͷखҾʱ͋Δύλϯɾϥϯήʔδ 「町」 「建築」

    「施⼯」 ⾃⽴地域‧町の分布‧フィンガー上の都市と⽥ 園 ..etc 複号建物‧⾒えない駐⾞場‧窓のある場所 ..etc ⽣活空間にしたがう構造‧深い窓枠 ..etc 誰にでも理解でき、誰もがデザイン‧プロセスに参 加することができる
  30. © - BASE, Inc. パターンの集積に対する⼀連の操作⼿順 CɾΞϨάβϯμʔஶʗฏా ᷨಹ༁ʰ࣌Λ௒͑ͨݐઃͷಓʱ 19ষ ۭؒͷ෼Խ “個々のパタンは空間分化の操作者である。つま

    り、差異のないところに差異を⽣じさせるのであ る。(中略)ランゲージとは、このような⼀連の 操作のシーケンスである。それぞれの操作が、そ れ以前の産物であるイメージを、更に分化してい くのである。”
  31. © - BASE, Inc. パタンの相互関係と序列 • パタンには序列がある • 町→建築→施⼯は直列的なつながりで機能す る

    • 各パタンは、ランゲージの上位にある特定の パタン、下位にある特定のパタンと結びつく CɾΞϨάβϯμʔஶʗฏా ᷨಹ༁ ʰύλϯɾϥϯήʔδ―؀ڥઃܭͷखҾʱ͋Δύλϯɾϥϯήʔδ
  32. © - BASE, Inc. 上位パタン‧下位パタンと連なる パタン(180)名: 「窓のある場所」 上位パタンへのつながり: 「⽞関 室」‧「禅窓」‧「どの

    部屋も2⾯採光」 ..etc 下位パタンへのつながり: 「アル コーブ」‧「低い窓台」 ..etc CɾΞϨάβϯμʔஶʗฏా ᷨಹ༁ ʰύλϯɾϥϯήʔδ―؀ڥઃܭͷखҾʱ͋Δύλϯɾϥϯήʔδ
  33. https://www.simonvandyk.co.za/writes/ / / /software-design-patterns-in-c-uml デザイン‧パターン == パタン‧ランゲージ ?

  34. https://www.youtube.com/watch?v= LdFA-_zfA

  35. “So far, as a lay person trying to read some

    of the works that have been published by you in this field, it looks to me more as though mainly the pattern concept, for you, is an inspiring format that is a good way of exchanging fragmentary, atomic, ideas about programming. Indeed, as I understand it, that part is working very well. But these other two dimensions, ( ) the moral capacity to produce a living structure and ( ) the generativity of the thing, its capability of producing coherent wholes—I haven't seen very much evidence of those two things in software pattern theory” Keynote Speech to the OOPSLA Convention by Christopher Alexander https://www.patternlanguage.com/archive/ieee.html
  36. © - BASE, Inc. Alexander ⽒の評価(私訳) • うまくいっている点 • フォーマットによるプログラミングア

    イデアの交換 • 機能しているとは⾔えない点 • ⽣きている構造を⽣む道徳的能⼒ • ⼀貫した全体性を作り出す⽣成能⼒
  37. © - BASE, Inc. フォーマット > GoF視点の類似点 . 既存システムを観察してその中にあるパターンを⾒つけることを基 礎においている

    .パターンを記述するためのテンプレートを 持っている(=フォーマット) . 形式⾔語ではなく⾃然⾔語と多数の例を使⽤し、それぞれのパター ンに理論的な根拠を与えている ErichGamma、RichardHelm、RalphJohnson、JohnVlissides著∕本位⽥真⼀、吉⽥和樹監訳『オ ブジェクト指向における再利⽤のためのデザインパターン改訂版』 6.3 パターンのコミュニティ
  38. “I understand that the software patterns, insofar as they refer

    to objects and programs and so on, can make a program better. That isn't the same thing, because in that sentence "better" could mean merely technically efficient, not actually "good." Again, if I'm translating from my experience, I would ask that the use of pattern language in software has the tendency to make the program or the thing that is being created is morally profound—actually has the capacity to play a more significant role in human life.” Keynote Speech to the OOPSLA Convention by Christopher Alexander https://www.patternlanguage.com/archive/ieee.html
  39. © - BASE, Inc. 道徳的能⼒についての指摘 ソフトウェアパターンによってプログラム は “良く”なるが、実際の⼈間の⽣活が良 くなるわけではないのではないか、とい う指摘

  40. “熟達したデザイナー(エンジニア)とそうでないデ ザイナー(エンジニア)の差を埋めるために、パ ターン‧ランゲージが⽤いれるようになった。(中 略)そこにはユーザーは登場せず、デザイナーと ユーザーのコラボレーションは視野から外れてし まった。”(井庭 崇⽒) 井庭 崇著,編集∕中埜 博,

    ⽵中 平蔵, 江渡 浩⼀郎, 中⻄ 泰⼈, ⽻⽣⽥ 栄⼀ 『パターン‧ランゲージ: 創造的な未来をつくるための⾔語 (リアリティ‧プラス)』序章 創造的な未来をつくるための⾔語 https://www.amazon.co.jp/dp/4766419871
  41. © - BASE, Inc. ⽣成能⼒ > GoF視点の相違点 . 建築物には数千年の歴史があり、利⽤できる古典も多い。ソフト ウェアシステムの場合は歴史がずっと短く、古典と呼べるものはほ

    とんどない . Alexanderはパターンを利⽤する優先順位を付けたが、我々は順位 を付けていない . Alexanderのパターンは扱う問題を強調しているが、我々のデザイ ンパターンは解決⽅法についてより詳細に記述している .Alexanderは提案したパターンによって完全な建築物が⽣ 成できると主張しているが、我々は提案したパターンに よって完全なプログラムが⽣成できるとは主張していない ErichGamma、RichardHelm、RalphJohnson、JohnVlissides著∕本位⽥真⼀、吉⽥和樹監訳『オ ブジェクト指向における再利⽤のためのデザインパターン改訂版』 6.3 パターンのコミュニティ
  42. “Alexander の⾒⽅によれば、本書に⽰したパターン はパターン⾔語を構成してはいない。構築されたソ フトウェアシステムの多様性を考えると、ステップ バイステップにアプリケーション設計指針を与える ような 完璧な パターン集合を提供することは困難で ある” ErichGamma、RichardHelm、RalphJohnson、

    JohnVlissides著∕本位⽥真⼀、吉⽥和樹監訳 『オブジェクト指向における再利⽤のためのデザインパター ン改訂版』 6.3 パターンのコミュニティ
  43. “デザインパターンは、ソフトウェアのための広範な パターン⾔語の⼀部に過ぎない” ErichGamma、RichardHelm、RalphJohnson、 JohnVlissides著∕本位⽥真⼀、吉⽥和樹監訳 『オブジェクト指向における再利⽤のためのデザインパター ン改訂版』 6.3 パターンのコミュニティ

  44. © - BASE, Inc. 「町」‧「建築」‧「施⼯」の中で「建築」のみを扱う 「町」 江渡 浩⼀郎著『パターン、Wiki、XP 時を超えた創造の原則 (WEB+DB

    PRESS plus)』 章 デザインパターン http://gihyo.jp/magazine/wdpress/plus/978-4-7741-3897-8 「建築」 「施⼯」 アーキテクチャ デザインパターン 実装パターン ex. SmallTalkベストプラクティス ex. Layersパターン, MVCパターン
  45. © - BASE, Inc. ⽣成能⼒についての限定的な能⼒ • パタン‧ランゲージは、町‧建築‧施⼯と、広く カバーした上で、それぞれのパタンを使⽤するこ とで、完全な建造物が⽣成できるとしていた •

    デザインパターンは、パタン‧ランゲージの⼀部 のみであり、順序をもった設計指針を与えている わけではない
  46. Photo by Caspar Camille Rubin on Unsplash デザインパターンを使う

  47. © - BASE, Inc. いかに使えそうか • AlexanderとGoFの⾒解が⼀致している 点は、フォーマットがもたらす機能性 だった •

    つまり、デザイン‧パターンは、名前と それぞれが同⼀構造を持つ、開発者間の 語彙(ランゲージ)となる
  48. © - BASE, Inc. デザイン‧パターンの構造 パタン‧ランゲージ同様、同⼀のフォーマットにま とめられる コンテクスト パターン名 問題

    解決 結果 フォース
  49. © - BASE, Inc. 同じデザイン問題ではある コンテクスト 形 要求 適合 •

    コンテクストが提⽰するフォースに形を適合させ ようとする努⼒であることは変わらない
  50. © - BASE, Inc. ソフトウェアにおけるコンテクスト コンテクストは、形を取り巻くすべての状況だと説 明した では、ソフトウェアにおけるコンテクストには、ど のような主要キャラクターがいるだろうか その中における、開発者というコンテクストはどの

    程度の存在だろうか
  51. © - BASE, Inc. プロダクトマネジメントトライアングル “ソフトウェア会社におけるプロダクトは事実 上、⼈々がアクセスできる環境にデプロイされた コードで構成されている。全てのプロダクトは三 つのこと、開発者、ユーザー、ビジネスで繋がっ ている。”

    【翻訳】プロダクトマネジメントトライアングル https://ninjinkun.hatenablog.com/entry/the-product-management-triangle-ja
  52. © - BASE, Inc. 開発者も「形」に影響するコンテクストである ソフトウェア‧プロダクトを取り巻くコ ンテクストは多数あるなかで、⽬が向く のがユーザーとビジネスだが、開発者と いうコンテクストも⼗分無視できない存 在感をもつ

  53. © - BASE, Inc. コンテクスト‧問題に焦点を当てる • パタンという概念の前提にあるデザインの問題 は、コンテクストと形の間に適合性をもたらすこ とであった •

    焦点を当てるべくは「コンテクスト‧問題」 コンテクスト パターン名 問題 解決 結果 フォース
  54. © - BASE, Inc. デザイン‧パターンのフォーマットにおける「問題」 • パターン名: 設計における⽤語の語彙を増やすため • 問題:

    問題と⽂脈 • 解法: 設計の要素、解法および責任、協調関係 • 結果: 適⽤した結果やトレードオフ
  55. © - BASE, Inc. 例:Template Method パターン 問題: ⼀定レベルで整合性のある⼿続きや⼀連の⼿順が 存在するものの、個々の処理が詳細レベルで異なっ

    た実装になる可能性がある https://en.wikipedia.org/wiki/Template_method_pattern
  56. User:Akendall - 投稿者⾃⾝による作品, CC 表⽰-継承 3.0, https://commons.wikimedia.org/w/index.php? curid= による デザインパターンを

    補完する
  57. © - BASE, Inc. デザインパターンとどう付き合っていくか デザインパターンは、それを順序⽴てて 適⽤していくことで完全なソフトウェア を形作るものではない。そのうえで「⽣ きた」ソフトウェアを作るにあたり、少 しでも補完する何かはないだろうか

  58. “Alexander は創造⼒が不要だとは⾔っていない。彼の 提案したパターンの中には、その建築物を使⽤する⼈ の習慣を理解しなければ使いこなせないものもある し、彼が設計の ʻ詩’ を信じると⾔うとき、それは、パ ターン⾔語を超えた熟練レベルの存在が前提となってい る。” ErichGamma、RichardHelm、RalphJohnson、

    JohnVlissides著∕本位⽥真⼀、吉⽥和樹監訳 『オブジェクト指向における再利⽤のためのデザインパター ン改訂版』 6.3 パターンのコミュニティ
  59. “⼀つの指針としては、デザイン‧パターンを構成す る、よりクリエイティブでより根源的な「デザイ ン‧プリンシンプル」(設計原則)をエンジニアが しっかりと学び、⾝体化する。”(⽻⽣⽥ 栄⼀) 井庭 崇著,編集∕中埜 博, ⽵中 平蔵,

    江渡 浩⼀郎, 中⻄ 泰⼈, ⽻⽣⽥ 栄⼀ 『パターン‧ランゲージ: 創造的な未来をつくるための⾔語 (リアリティ‧プラス)』第4章 パターン‧ランゲージとネイ チャー‧オブ‧オーダー https://www.amazon.co.jp/dp/4766419871
  60. “(デザインパターンの)もう⼀つの有効な学習⽅法 は、デザインパターンの本質的なメカニズム、およ びそれが基にしている原則と戦略を学ぶというもの です。(中略)これは実際のところ、「後にパター ンと呼ばれることになる解決策」を考えだした開発 者の考え⽅、価値観を学ぶということなのです。” アラン‧シャロウェイ, ジェームズ‧R‧トロット著∕村上雅章訳 『オブジェクト指向のこころ』 14

    デザインパターンの原則と戦略
  61. © - BASE, Inc. 背後にある原則によって補完する • (SOLID原則) • 単⼀責任原則(Single Responsibility

    Principle) • 開放/閉鎖原則(open/closed principle) • 依存性逆転原則(dependency inversion principle) • リスコフ置換原則(Liskov substitution principle) • 流動性要素のカプセル化 • etc アラン‧シャロウェイ, ジェームズ‧R‧トロット著∕村上雅章訳 『オブジェクト指向のこころ』 14 デザインパターンの原則と戦略
  62. Photo by Sorasak on Unsplash まとめ

  63. © - BASE, Inc. どうやって正しく使うか • デザインパターンがパタンとして機能している点 は、フォーマットを通じたコミュニケーション • そこから読み取れるのは、「解決策」に⽬が向き

    がちだが、それらは先⼈たちが気がついた「コン テクスト」から発⽣する「問題」と、それに対す る「解決」という⼀連のデザイン問題の解決経験 である
  64. “パターンが有効となるのは、あなたの思考を 助ける道具として使⽤する場合であり、パター ンを解決策につながる解答と捉えるべきではあ りません。” アラン‧シャロウェイ, ジェームズ‧R‧トロット著∕村上雅章訳 『オブジェクト指向のこころ』 14.6 健全な猜疑⼼

  65. “その結果何が起きたかというと、無⽬的なデ ザインパターンの乱⽤です。⽬的はわからない けど、デザインパターンを盛り込んだ⽅がソフ トウェアが⾼級になるらしい、なんてとんでも ない迷信がはびこったのです。⽬的のないパ ターンはただの難読化です。” GoF デザインパターン チートシート |

    ちょうぜつ Advent Calendar Day | @tanakahisateru https://qiita.com/tanakahisateru/items/df d f d a a
  66. © - BASE, Inc. なぜ⾒失ったのか • いつ使うか‧何故使うのかを⾒失っていたのは、 そのパターンのコンテクスト‧問題を⾒逃してい たからと⾔える •

    「認識のメガネ」としてパターンを使って、コー ドの問題を⾒る • コンテクスト‧問題に脳内インデックスをはっ て、現場で問題に対する検索精度を上げていくこ とが、正しい使い⽅なのかもしれません
  67. © - BASE, Inc. 参考⽂献 • アラン‧シャロウェイ, ジェームズ‧R‧トロット著∕村上雅章訳 『オブジェクト指向のこころ』 •

    ErichGamma、RichardHelm、RalphJohnson、JohnVlissides著∕ 本位⽥真⼀、吉⽥和樹監訳『オブジェクト指向における再利⽤のた めのデザインパターン改訂版』 • Keynote Speech to the OOPSLA Convention by Christopher Alexander • https://www.patternlanguage.com/archive/ieee.html • https://www.youtube.com/watch?v= LdFA-_zfA • 江渡 浩⼀郎著『パターン、Wiki、XP 時を超えた創造の原則 (WEB+DB PRESS plus)』
  68. © - BASE, Inc. 参考⽂献 • C‧アレグザンダー著∕平⽥ 翰那訳 『パタン‧ランゲージ―環境設 計の⼿引』

    • C‧アレグザンダー著∕平⽥ 翰那訳『時を超えた建設の道』 • 井庭 崇著,編集∕中埜 博, ⽵中 平蔵, 江渡 浩⼀郎, 中⻄ 泰⼈, ⽻⽣⽥ 栄 ⼀ 『パターン‧ランゲージ: 創造的な未来をつくるための⾔語 (リア リティ‧プラス)』 • ⻑坂 ⼀郎 著 『クリストファー‧アレグザンダーの思考の軌跡―デザ イン⾏為の意味を問う』 • Christopher Alexander 著 『The Battle for the Life and Beauty of the Earth: A Struggle Between Two World-Systems (Center for Environmental Structure)』
  69. © - BASE, Inc. 参考⽂献 • クリストファー‧アレグザンダー再考 | 難波和彦 •

    http://db. plus .jp/backnumber/article/articleid/ / • クリストファー‧アレグザンダー 著∕稲葉 武司, 押野⾒ 邦英 訳 『形 の合成に関するノート/都市はツリーではない』 • 【翻訳】プロダクトマネジメントトライアングル • https://ninjinkun.hatenablog.com/entry/the-product- management-triangle-ja • GoF デザインパターン チートシート | ちょうぜつ Advent Calendar Day | @tanakahisateru • https://qiita.com/tanakahisateru/items/df d f d a a
  70. © - BASE, Inc. X END . . Object Oriented

    Conference - @hgsgtk