Slide 1

Slide 1 text

© - BASE, Inc. X ブランコの⽐喩は どこから来たのか 2019.9.25 第142回PHP勉強会 #phpstudy - @hgsgtk

Slide 2

Slide 2 text

© - BASE, Inc. よくみるブランコの⽐喩 https://tech.nikkeibp.co.jp/it/article/COLUMN/ / /

Slide 3

Slide 3 text

© - BASE, Inc. • どこからこの⽐喩が⽣まれたかご存知で すか? • ブランコの⽐喩の出⾃からソフトウェア 設計の歴史を⾒ていきます よくみるブランコの⽐喩

Slide 4

Slide 4 text

© - BASE, Inc. : @hgsgtk var_dump($hgsgtk); 東⼝ 和暉 ( Higashiguchi Kazuki ) Back-end Engineer (Go, PHP, Python ) BASE BANK, Inc. (BASE, Inc.) / Dev Division / Tech Lead

Slide 5

Slide 5 text

© - BASE, Inc. • 時間の都合上、歴史を厳選ピックアップ してお届けしています 本資料の注意事項

Slide 6

Slide 6 text

© - BASE, Inc. 本トークの構成について • 序章:ブランコの⽐喩 • 第⼆章:クリストファー‧アレグザン ダーの理論 • 第三章:ソフトウェア設計への展開 • 終章:まとめ

Slide 7

Slide 7 text

© - BASE, Inc. Special Thanks: http://gihyo.jp/magazine/wdpress/plus/ - - - -

Slide 8

Slide 8 text

© - BASE, Inc. 本トークの構成について • 序章:ブランコの⽐喩 • 第⼆章:クリストファー‧アレグザン ダーの理論 • 第三章:ソフトウェア設計への展開 • 終章:まとめ

Slide 9

Slide 9 text

© - BASE, Inc. よくみるブランコの⽐喩 https://tech.nikkeibp.co.jp/it/article/COLUMN/ / / “ユーザーは⾃分が本当に必要とする要件について 正しく表現できない。 ユーザーからの要求事項は絶対ではない。”

Slide 10

Slide 10 text

© - BASE, Inc. よくみるブランコの⽐喩 https://tech.nikkeibp.co.jp/it/article/COLUMN/ / /

Slide 11

Slide 11 text

© - BASE, Inc. 書籍『オレゴン⼤学の実験』 著者: クリストファー‧ア レグザンダー 1975年に原著出版 オレゴン⼤学で著者が試 みた、建築‧計画に対す るアプローチをまとめま たもの https://www.amazon.co.jp/dp/

Slide 12

Slide 12 text

© - BASE, Inc. ブランコの⽐喩 https://www.pinterest.com/pin/

Slide 13

Slide 13 text

© - BASE, Inc. 掲載されたブランコの⽐喩のマンガ • 建築業界における各領域の専⾨家と利⽤ 者との理解の齟齬を批判的に⽰したの が、ブランコの⽐喩 • アレグザンダー⽒のオリジナルではない • カリフォルニア⼤学バークレー校の研究 所のドアによく貼られていたもの

Slide 14

Slide 14 text

© - BASE, Inc. 序章まとめ • ブランコの⽐喩は、建築業界を出⾃とし ている • では、ソフトウェア業界‧建築業界がど う繋がって現在に⾄ったのか

Slide 15

Slide 15 text

t t 令和PHPer

Slide 16

Slide 16 text

© - BASE, Inc. 本トークの構成について • 序章:ブランコの⽐喩 • 第⼆章:クリストファー‧アレグザン ダーの理論 • 第三章:ソフトウェア設計への展開 • 終章:まとめ

Slide 17

Slide 17 text

t t 令和PHPer

Slide 18

Slide 18 text

© - BASE, Inc. クリストファー‧アレグザンダー 1936年ウィーン出⾝の都 市計画家‧建築家 建築‧都市計画の理論と して、「パタン‧ラン ゲージ」を提唱 https://en.wikipedia.org/wiki/Christopher_Alexander

Slide 19

Slide 19 text

© - BASE, Inc. アレグザンダー⽒の思考の変遷 • 「⼈が⽣きるに値する暮らしを送れる」 環境を提供すること、この⼀点を⽬指し て構築してきた • その中で、⻑い研究⽣活の中で幾度も考 えを変化させている 参考書籍 ⻑坂 ⼀郎 著 『クリストファー‧アレグザンダーの思考の軌跡―デザイン⾏為の意味を 問う』

Slide 20

Slide 20 text

© - BASE, Inc. 主な著書‧論⽂ • 1964年 『形の合成に関するノート』 • 1965年 『都市はツリーではない』 • 1975年 『オレゴン⼤学の実験』 • 1977年 『パタン‧ランゲージ』 • 1979年 『時を超えた建設の道』

Slide 21

Slide 21 text

© - BASE, Inc. 1964年 『形の合成に関するノート』 https://www.amazon.co.jp/dp/ X

Slide 22

Slide 22 text

© - BASE, Inc. 設計プロセスの数学的な形式化 • 設計という⾏為を理論化する研究 • 良い設計=なるべく多くの条件を満たす 形態を探し当てる • 数学的なアプローチで解ける問題へ還元

Slide 23

Slide 23 text

© - BASE, Inc. やかんの例 http://www.girlwonder.com/tag/cybernetics

Slide 24

Slide 24 text

© - BASE, Inc. 数学的に扱うアプローチ . 要求条件を洗い出し細分化する • 要求条件の集合全体を「システム」と呼ぶ . 条件間の関係性を検討し、すべての条件について 他の条件との関係性を洗い出す . それぞれの条件が適合している/していないとい う2値で取ると数値の集合として数学的に扱える

Slide 25

Slide 25 text

© - BASE, Inc. 条件間は複雑に絡み合うためツリー構造へ . 要求条件を洗い出し細分化する • 要求条件の集合全体を「システム」と呼ぶ . 条件の関係を吟味、互いに影響を与えうる条件だ けを集めて「サブシステム」とする . サブシステムで更に分割し、より⼩さなサブシス テムへ . 全体の構造をシステム‧サブシステムの親⼦関係 (ツリー構造)に還元していく、トップダウンな アプローチ

Slide 26

Slide 26 text

© - BASE, Inc. やかんの例 http://www.girlwonder.com/tag/cybernetics

Slide 27

Slide 27 text

© - BASE, Inc. https://www.sfgate.com/travel/resources/transit/article/The-location-of-a-historic-BART-meeting- was-a- .php 1964年 ベイエリア⾼速鉄道の計画 ※ 当時の写真ではありません

Slide 28

Slide 28 text

© - BASE, Inc. 1964年 ベイエリア⾼速鉄道の計画 でわかった問題点 • 要求分析をし、390個の要求分析をし、ツリー構 造に分割 • 膨⼤な数のサブシステムになり、計算プログラム も巨⼤に • 予期しなかったサブシステム間の連携が⽣じる • ex. チケットブースの列が膨らむ→⼈の通⾏が妨 げられる

Slide 29

Slide 29 text

© - BASE, Inc. http://en.bp.ntu.edu.tw/wp-content/uploads/ / / -Alexander-A-city-is-not-a-tree.pdf 1965年 『都市はツリーではない』

Slide 30

Slide 30 text

© - BASE, Inc. 論⽂『都市はツリーではない』 • それまでの都市計画に対する批判 • それまでの都市計画によってできた都市を「⼈⼯ 都市」と呼ぶ、ツリー構造に還元される • ⾃然都市: ⾃然にできた都市 • 1つの場所が複数の役割を同時に担うセミラティ ス構造を持つ http://en.bp.ntu.edu.tw/wp-content/uploads/ / / -Alexander-A-city-is-not-a-tree.pdf

Slide 31

Slide 31 text

© - BASE, Inc. セミラティス構造とツリー構造 https://www.researchgate.net/figure/Semilattice-a-and-Tree-Structures-b-Source-A-City-is-Not-a- Tree- _fig _

Slide 32

Slide 32 text

© - BASE, Inc. セミラティス構造 • 重複を許すように分割するときに出来る構造 • 市⺠の活動はツリー構造には収まらない • ex. 仕事と週末、同じ地域で⾏うこともある • 都市は、セミレティス構造のまま扱わなければな らない

Slide 33

Slide 33 text

© - BASE, Inc. 1975年『オレゴン⼤学の実験』 https://www.amazon.co.jp/dp/

Slide 34

Slide 34 text

© - BASE, Inc. 建築‧計画を⾏うための6つの原理 . 有機的秩序の原理 (The principle of organic order) . 参加の原理 (The principle of participation) . 斬新的成⻑の原理 (The principle of piecemeal growth) . パターンの原理 (The principle of patterns) . 診断の原理 (The principle of diagnosis) . 調整の原理 (The principle of coordination) 書籍 Alexandar C 『オレゴン⼤学の実験』

Slide 35

Slide 35 text

© - BASE, Inc. 詳説:6つの原理 • 有機的秩序の原理 • 計画や施⼯は、全体を個別的な⾏為から徐々に ⽣み出していくようなプロセスによって導かれる こと • 参加の原理 • 建築内容や建設⽅法に関するすべての決定は利⽤ 者の⼿に委ねること 書籍 Alexandar C 『オレゴン⼤学の実験』

Slide 36

Slide 36 text

© - BASE, Inc. 詳説:6つの原理 • 斬新的成⻑の原理 • 各予算年度に企画される建築は、⼩規模なプロ ジェクトに特に重点を置くこと • パターンの原理 • すべての設計と建設は、正式に採⽤されたパター ンと呼ばれる計画原理の集合によって指導され ること 書籍 Alexandar C 『オレゴン⼤学の実験』

Slide 37

Slide 37 text

© - BASE, Inc. 詳説:6つの原理 • 診断の原理 • 各コミュニティ全体の健康状態は、コミュニティ の変遷のどの時点でも、どのスペースが⽣かさ れ、どのスペースが⽣かされていないか、を詳し く説明する定期的な診断に基づいて保護される こと 書籍 Alexandar C 『オレゴン⼤学の実験』

Slide 38

Slide 38 text

© - BASE, Inc. 詳説:6つの原理 • 調整の原理 • 全体における有機的秩序の緩やかな⽣成は、利 ⽤者の推進する個々のプロジェクトの流れに制 御を施す財政的処理によって確実なものとされ ること。 書籍 Alexandar C 『オレゴン⼤学の実験』

Slide 39

Slide 39 text

© - BASE, Inc. 1977年『パタン‧ランゲージ』 https://www.amazon.co.jp/dp/

Slide 40

Slide 40 text

© - BASE, Inc. パタン‧ランゲージ • 建築において繰り返し現れる構造を再利 ⽤しやすい形式にまとめたもの • 利⽤者と設計者の共通⾔語として使うこ とで、利⽤者が⾃分⾃⾝で建築の設計を ⾏い、本当に望んだ建築を実現できる⽤ になることを⽬指した 書籍 Alexandar C 『パタン‧ランゲージ』

Slide 41

Slide 41 text

© - BASE, Inc. 『パタン‧ランゲージ』の3つの部 • 「町」:都市の⼤きな配置を考えるため の⼤きなパターン • 「建築」:敷地の空間にどのように建物 を配置すべきかというパターン • 「施⾏」:建物の構造‧材料、柱‧壁、 床‧天井などの⼀つ⼀つの構造を決める ためのパターン

Slide 42

Slide 42 text

© - BASE, Inc. パタン‧ランゲージによる建築 • 部品を⽤意してつなぎ合わせるというわ けではない • 利⽤者と建築家をつなぐための⼯夫の集 積、そのための道具の⼀つ

Slide 43

Slide 43 text

© - BASE, Inc. 1979年『時を超えた建設の道』 https://www.amazon.co.jp/dp/

Slide 44

Slide 44 text

© - BASE, Inc. 『時を超えた建設の道』 • ⼀連の著作の背景理論を述べた理論書 • 「無名の質(QWAN: Quality Without A Name)」 • ⽣き⽣きとした建物や町が持つ特性

Slide 45

Slide 45 text

© - BASE, Inc. 第⼆章まとめ • 建築家アレグザンダーによる理論 • 建築‧計画するための「6つの原理」 • 「パタン‧ランゲージ」 • 「無名の質」

Slide 46

Slide 46 text

t t 令和PHPer

Slide 47

Slide 47 text

© - BASE, Inc. 本トークの構成について • 序章:ブランコの⽐喩 • 第⼆章:クリストファー‧アレグザン ダーの理論 • 第三章:ソフトウェア設計への展開 • 終章:まとめ

Slide 48

Slide 48 text

t t 令和PHPer

Slide 49

Slide 49 text

© - BASE, Inc. OOPSLA • Object-Oriented Programming, Systems, Languages, and Applications • オブジェクト指向に関するシンポジウム • 1986年 オレゴンにて第⼀回開催

Slide 50

Slide 50 text

© - BASE, Inc. アレグザンダー⽒の理論の適⽤の初め https://en.wikipedia.org/wiki/Ward_Cunningham https://en.wikipedia.org/wiki/Kent_Beck Ward Cunningham Kent Beck

Slide 51

Slide 51 text

t t 令和PHPer

Slide 52

Slide 52 text

© - BASE, Inc. パタン‧ランゲージへの興味 https://www.amazon.co.jp/dp/ Kent Beck⽒は、⼤学⽣のときに ⽣協でこの書籍を読んだそう

Slide 53

Slide 53 text

http://wiki.c .com/?SemiconductorTestSystemsGroup

Slide 54

Slide 54 text

© - BASE, Inc. パターンを使ったシステム設計の試み • システム利⽤者に最終設計をしてもらう • ユーザーインターフェースに関するパ ターン5つ収集 • パターンを使って設計してもらう

Slide 55

Slide 55 text

© - BASE, Inc. 1987年 “Using Pattern Languages for Object- Oriented Programs” http://c .com/doc/oopsla .html

Slide 56

Slide 56 text

© - BASE, Inc. Using Pattern Languages for Object-Oriented Programs • ユーザーインターフェースの設計をシステム設計 に取り込む • 旧来の設計⽅法論(構造化分析‧エンティティリ レーションシップ)は有効ではないという主張 • アレグザンダーのパタン‧ランゲージを取り⼊れ る

Slide 57

Slide 57 text

© - BASE, Inc. • Erich Gamma⽒がソフトウェアの設計 に繰り返し現れる構造に着⽬するように なる 繰り返し現れる構造への着⽬

Slide 58

Slide 58 text

© - BASE, Inc. 1988年 “ET++ - An Object-Oriented Application Framework in C++ “ http://citeseerx.ist.psu.edu/viewdoc/download?doi= . . . . &rep=rep &type=pdf

Slide 59

Slide 59 text

© - BASE, Inc. 1992年 “Documenting Frameworks using Patterns” / Ralph E. Johnson https://www.researchgate.net/publication/ _Documenting_Frameworks_Using_Patterns

Slide 60

Slide 60 text

© - BASE, Inc. 1994年 GoF (Gang of Four) • 1992年 OOPSLAで、Erich Gamma、Richard Helm、Ralph E. Johnson、John Matthew Vlissides の4⼈組が顔合わせ • 1994年10⽉、書籍『オブジェクト指向における再 利⽤のためのデザインパターン』を発表 • ソフトウェア設計において繰り返し現れる構造を パターンとしてまとめる

Slide 61

Slide 61 text

© - BASE, Inc. 1996年~ C プロジェクト • C: Chrysler Comprehensive Compensation project • 1996年、Kent BeckがChrysler社に呼ばれる • COBOLで書かれた給与計算プログラムを Smalltalkに置き換えるプロジェクト • これまでのコミュニティのパターンを徹底的に実 践

Slide 62

Slide 62 text

© - BASE, Inc. C プロジェクトで実践されたプラクティス • Unit Testing • Integration, Relentless Testing • Short Iterations • YAGNI (You’re NOT gonna need it!) • Code Ownership • Pair Programming • etc

Slide 63

Slide 63 text

© - BASE, Inc. 1999年 『XP エクストリーム‧プログラミング⼊⾨』 • Kent Beckによる発表の書籍 • 良いとされている⾏動指針を極端なまで に実践してみようという発想 • C プロジェクトで培ったプラクティス をまとめた

Slide 64

Slide 64 text

© - BASE, Inc. 第三章まとめ • アレグザンダーのパタン‧ランゲージの 取り組みをソフトウェア設計に取り⼊れ る試み • GoF デザインパターン • XP

Slide 65

Slide 65 text

t t GoF 令和PHPer XP

Slide 66

Slide 66 text

© - BASE, Inc. まとめ • 序章:ブランコの⽐喩 • 第⼆章:クリストファー‧アレグザン ダーの理論 • 第三章:ソフトウェア設計への展開 • 終章:まとめ

Slide 67

Slide 67 text

© - BASE, Inc. まとめ • ソフトウェア開発は⼤きく建築設計の理 論に影響を受けている • デザインパターン‧XPは、Kent Beck とその周辺コミュニティが起こしたムー ブメントであり、アレグザンダーの思想 をプログラミングの世界に持ち込む試み

Slide 68

Slide 68 text

© - BASE, Inc. パタン‧ランゲージとの対応 • 「町」 ≈ アーキテクチャ • ex. Layers, MVC etc • 「建築」 ≈ GoFのデザインパターン • 「施⾏」 ≈ 各⾔語での実装パターン • ex. Smalltalkベストプラクティスパターン 書籍 江渡 浩⼀郎. パターン、Wiki、XP 時を超えた創造の原則

Slide 69

Slide 69 text

© - BASE, Inc. アレグザンダーの6つの原理とXP . 有機的秩序の原理 ≈ ストーリー . 参加の原理 ≈ 実顧客の参加 . 斬新的成⻑の原理 ≈ インクリメンタル設計‧配 置 . パターンの原理 ≈ ストーリー . 診断の原理 ≈ 常時結合‧テストファーストプロ グラミング . 調整の原理 ≈ 根本原因の分析 書籍 江渡 浩⼀郎. パターン、Wiki、XP 時を超えた創造の原則

Slide 70

Slide 70 text

© - BASE, Inc. この流れを知って • 単純にプラクティスとして覚えて実践す るよりも、その背景にどういう成り⽴ち があるか知ると、かけがえのない歴史の 積み重ねの結果だと分かる

Slide 71

Slide 71 text

© - BASE, Inc. よくみるブランコの⽐喩 https://tech.nikkeibp.co.jp/it/article/COLUMN/ / /

Slide 72

Slide 72 text

© - BASE, Inc. Special Thanks • 〈建築理論研究 07〉──クリストファー‧アレグ ザンダー『形の合成に関するノート∕都市はツ リーではない』『パタン‧ランゲージ』 • http:// plus .jp/monthly/ / /- .php

Slide 73

Slide 73 text

© - BASE, Inc. おしまい