Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ブランコの比喩はどこから来たのか / Where did the swing metaphor come from
Search
Kazuki Higashiguchi
September 25, 2019
Technology
3
3.4k
ブランコの比喩はどこから来たのか / Where did the swing metaphor come from
ブランコの比喩の出自からソフトウェア設計の歴史を学びましょう
Kazuki Higashiguchi
September 25, 2019
Tweet
Share
More Decks by Kazuki Higashiguchi
See All by Kazuki Higashiguchi
Design of a Stateful system for Robust Deployment and Observability
hgsgtk
0
1.1k
A guide to joining operational work in your new DevOps team
hgsgtk
1
1.2k
HTTP Tunneling in Go
hgsgtk
0
1.2k
ブラウザ自動操作技術の深層へ、直接触れて学ぶ WebDriver と Chrome DevTools Protocol
hgsgtk
3
6.2k
HTTP Server on random available port in Go
hgsgtk
0
850
Agile Testingを夢見たテスト自動化 〜ATDDへの挑戦から始まる 1年間の試行錯誤〜 / dreaming agile testing at basebank
hgsgtk
14
7.3k
Create Go WebDriver client from scratch
hgsgtk
1
2k
PHPでWeb Driver Clientを自作する〜己の手でブラウザ操作自動化を完全理解する方法〜 / phpcon2021
hgsgtk
2
2.3k
振り返りを積み上げて自分たちのプラクティスとして昇華•体得していくための仕組みと考え方 / ScrumFestMikawa2021
hgsgtk
3
2.3k
Other Decks in Technology
See All in Technology
年間一億円削減した時系列データベースのアーキテクチャ改善~不確実性の高いプロジェクトへの挑戦~
lycorptech_jp
PRO
3
2.9k
AWS IAMのアンチパターン/AWSが考える最低権限実現へのアプローチ概略(JAWS-UG朝会#59資料改修20分版)
htan
0
330
AOAI Dev Day - Opening Session
yoshidashingo
2
440
エンジニア向け会社紹介資料
caddi_eng
14
220k
シフトレフトで挑む セキュリティの生産性向上
sekido
PRO
0
270
OSSコミットしてZennの課題を解決した話
dyoshikawa1993
0
150
目標設定は好きですか? アジャイルとともに目標と向き合い続ける方法 / Do you like target Management?
kakehashi
10
3k
コミュニティサービスに「あなたへ」フィードを リリースするまでの試行錯誤
takapy
1
150
Classmethod Odyssey 登壇資料
yamahiro
0
390
Azure Pipelinesを使用したCICDベースラインアーキテクチャ実践
yuriemori
0
190
「単なる OAuth 2.0 を認証に使うと、車が通れるほどのどでかいセキュリティー・ホールができる」のか検証してみた
terara
0
380
スタートアップにおける組織設計とスクラムの長期戦略 / Scrum Fest Kanazawa 2024
yoshikiiida
13
3.6k
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
189
16k
Music & Morning Musume
bryan
43
5.9k
A designer walks into a library…
pauljervisheath
201
24k
Pencils Down: Stop Designing & Start Developing
hursman
118
11k
Making the Leap to Tech Lead
cromwellryan
127
8.7k
BBQ
matthewcrist
82
9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
13
430
Adopting Sorbet at Scale
ufuk
71
8.8k
Docker and Python
trallard
37
2.9k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
34
1.9k
Typedesign – Prime Four
hannesfritz
37
2.2k
Building Your Own Lightsaber
phodgson
101
5.9k
Transcript
© - BASE, Inc. X ブランコの⽐喩は どこから来たのか 2019.9.25 第142回PHP勉強会 #phpstudy
- @hgsgtk
© - BASE, Inc. よくみるブランコの⽐喩 https://tech.nikkeibp.co.jp/it/article/COLUMN/ / /
© - BASE, Inc. • どこからこの⽐喩が⽣まれたかご存知で すか? • ブランコの⽐喩の出⾃からソフトウェア 設計の歴史を⾒ていきます
よくみるブランコの⽐喩
© - BASE, Inc. : @hgsgtk var_dump($hgsgtk); 東⼝ 和暉 (
Higashiguchi Kazuki ) Back-end Engineer (Go, PHP, Python ) BASE BANK, Inc. (BASE, Inc.) / Dev Division / Tech Lead
© - BASE, Inc. • 時間の都合上、歴史を厳選ピックアップ してお届けしています 本資料の注意事項
© - BASE, Inc. 本トークの構成について • 序章:ブランコの⽐喩 • 第⼆章:クリストファー‧アレグザン ダーの理論
• 第三章:ソフトウェア設計への展開 • 終章:まとめ
© - BASE, Inc. Special Thanks: http://gihyo.jp/magazine/wdpress/plus/ - - -
-
© - BASE, Inc. 本トークの構成について • 序章:ブランコの⽐喩 • 第⼆章:クリストファー‧アレグザン ダーの理論
• 第三章:ソフトウェア設計への展開 • 終章:まとめ
© - BASE, Inc. よくみるブランコの⽐喩 https://tech.nikkeibp.co.jp/it/article/COLUMN/ / / “ユーザーは⾃分が本当に必要とする要件について 正しく表現できない。
ユーザーからの要求事項は絶対ではない。”
© - BASE, Inc. よくみるブランコの⽐喩 https://tech.nikkeibp.co.jp/it/article/COLUMN/ / /
© - BASE, Inc. 書籍『オレゴン⼤学の実験』 著者: クリストファー‧ア レグザンダー 1975年に原著出版 オレゴン⼤学で著者が試
みた、建築‧計画に対す るアプローチをまとめま たもの https://www.amazon.co.jp/dp/
© - BASE, Inc. ブランコの⽐喩 https://www.pinterest.com/pin/
© - BASE, Inc. 掲載されたブランコの⽐喩のマンガ • 建築業界における各領域の専⾨家と利⽤ 者との理解の齟齬を批判的に⽰したの が、ブランコの⽐喩 •
アレグザンダー⽒のオリジナルではない • カリフォルニア⼤学バークレー校の研究 所のドアによく貼られていたもの
© - BASE, Inc. 序章まとめ • ブランコの⽐喩は、建築業界を出⾃とし ている • では、ソフトウェア業界‧建築業界がど
う繋がって現在に⾄ったのか
t t 令和PHPer
© - BASE, Inc. 本トークの構成について • 序章:ブランコの⽐喩 • 第⼆章:クリストファー‧アレグザン ダーの理論
• 第三章:ソフトウェア設計への展開 • 終章:まとめ
t t 令和PHPer
© - BASE, Inc. クリストファー‧アレグザンダー 1936年ウィーン出⾝の都 市計画家‧建築家 建築‧都市計画の理論と して、「パタン‧ラン ゲージ」を提唱
https://en.wikipedia.org/wiki/Christopher_Alexander
© - BASE, Inc. アレグザンダー⽒の思考の変遷 • 「⼈が⽣きるに値する暮らしを送れる」 環境を提供すること、この⼀点を⽬指し て構築してきた •
その中で、⻑い研究⽣活の中で幾度も考 えを変化させている 参考書籍 ⻑坂 ⼀郎 著 『クリストファー‧アレグザンダーの思考の軌跡―デザイン⾏為の意味を 問う』
© - BASE, Inc. 主な著書‧論⽂ • 1964年 『形の合成に関するノート』 • 1965年
『都市はツリーではない』 • 1975年 『オレゴン⼤学の実験』 • 1977年 『パタン‧ランゲージ』 • 1979年 『時を超えた建設の道』
© - BASE, Inc. 1964年 『形の合成に関するノート』 https://www.amazon.co.jp/dp/ X
© - BASE, Inc. 設計プロセスの数学的な形式化 • 設計という⾏為を理論化する研究 • 良い設計=なるべく多くの条件を満たす 形態を探し当てる
• 数学的なアプローチで解ける問題へ還元
© - BASE, Inc. やかんの例 http://www.girlwonder.com/tag/cybernetics
© - BASE, Inc. 数学的に扱うアプローチ . 要求条件を洗い出し細分化する • 要求条件の集合全体を「システム」と呼ぶ .
条件間の関係性を検討し、すべての条件について 他の条件との関係性を洗い出す . それぞれの条件が適合している/していないとい う2値で取ると数値の集合として数学的に扱える
© - BASE, Inc. 条件間は複雑に絡み合うためツリー構造へ . 要求条件を洗い出し細分化する • 要求条件の集合全体を「システム」と呼ぶ .
条件の関係を吟味、互いに影響を与えうる条件だ けを集めて「サブシステム」とする . サブシステムで更に分割し、より⼩さなサブシス テムへ . 全体の構造をシステム‧サブシステムの親⼦関係 (ツリー構造)に還元していく、トップダウンな アプローチ
© - BASE, Inc. やかんの例 http://www.girlwonder.com/tag/cybernetics
© - BASE, Inc. https://www.sfgate.com/travel/resources/transit/article/The-location-of-a-historic-BART-meeting- was-a- .php 1964年 ベイエリア⾼速鉄道の計画 ※
当時の写真ではありません
© - BASE, Inc. 1964年 ベイエリア⾼速鉄道の計画 でわかった問題点 • 要求分析をし、390個の要求分析をし、ツリー構 造に分割
• 膨⼤な数のサブシステムになり、計算プログラム も巨⼤に • 予期しなかったサブシステム間の連携が⽣じる • ex. チケットブースの列が膨らむ→⼈の通⾏が妨 げられる
© - BASE, Inc. http://en.bp.ntu.edu.tw/wp-content/uploads/ / / -Alexander-A-city-is-not-a-tree.pdf 1965年 『都市はツリーではない』
© - BASE, Inc. 論⽂『都市はツリーではない』 • それまでの都市計画に対する批判 • それまでの都市計画によってできた都市を「⼈⼯ 都市」と呼ぶ、ツリー構造に還元される
• ⾃然都市: ⾃然にできた都市 • 1つの場所が複数の役割を同時に担うセミラティ ス構造を持つ http://en.bp.ntu.edu.tw/wp-content/uploads/ / / -Alexander-A-city-is-not-a-tree.pdf
© - BASE, Inc. セミラティス構造とツリー構造 https://www.researchgate.net/figure/Semilattice-a-and-Tree-Structures-b-Source-A-City-is-Not-a- Tree- _fig _
© - BASE, Inc. セミラティス構造 • 重複を許すように分割するときに出来る構造 • 市⺠の活動はツリー構造には収まらない •
ex. 仕事と週末、同じ地域で⾏うこともある • 都市は、セミレティス構造のまま扱わなければな らない
© - BASE, Inc. 1975年『オレゴン⼤学の実験』 https://www.amazon.co.jp/dp/
© - 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 『オレゴン⼤学の実験』
© - BASE, Inc. 詳説:6つの原理 • 有機的秩序の原理 • 計画や施⼯は、全体を個別的な⾏為から徐々に ⽣み出していくようなプロセスによって導かれる
こと • 参加の原理 • 建築内容や建設⽅法に関するすべての決定は利⽤ 者の⼿に委ねること 書籍 Alexandar C 『オレゴン⼤学の実験』
© - BASE, Inc. 詳説:6つの原理 • 斬新的成⻑の原理 • 各予算年度に企画される建築は、⼩規模なプロ ジェクトに特に重点を置くこと
• パターンの原理 • すべての設計と建設は、正式に採⽤されたパター ンと呼ばれる計画原理の集合によって指導され ること 書籍 Alexandar C 『オレゴン⼤学の実験』
© - BASE, Inc. 詳説:6つの原理 • 診断の原理 • 各コミュニティ全体の健康状態は、コミュニティ の変遷のどの時点でも、どのスペースが⽣かさ
れ、どのスペースが⽣かされていないか、を詳し く説明する定期的な診断に基づいて保護される こと 書籍 Alexandar C 『オレゴン⼤学の実験』
© - BASE, Inc. 詳説:6つの原理 • 調整の原理 • 全体における有機的秩序の緩やかな⽣成は、利 ⽤者の推進する個々のプロジェクトの流れに制
御を施す財政的処理によって確実なものとされ ること。 書籍 Alexandar C 『オレゴン⼤学の実験』
© - BASE, Inc. 1977年『パタン‧ランゲージ』 https://www.amazon.co.jp/dp/
© - BASE, Inc. パタン‧ランゲージ • 建築において繰り返し現れる構造を再利 ⽤しやすい形式にまとめたもの • 利⽤者と設計者の共通⾔語として使うこ
とで、利⽤者が⾃分⾃⾝で建築の設計を ⾏い、本当に望んだ建築を実現できる⽤ になることを⽬指した 書籍 Alexandar C 『パタン‧ランゲージ』
© - BASE, Inc. 『パタン‧ランゲージ』の3つの部 • 「町」:都市の⼤きな配置を考えるため の⼤きなパターン • 「建築」:敷地の空間にどのように建物
を配置すべきかというパターン • 「施⾏」:建物の構造‧材料、柱‧壁、 床‧天井などの⼀つ⼀つの構造を決める ためのパターン
© - BASE, Inc. パタン‧ランゲージによる建築 • 部品を⽤意してつなぎ合わせるというわ けではない • 利⽤者と建築家をつなぐための⼯夫の集
積、そのための道具の⼀つ
© - BASE, Inc. 1979年『時を超えた建設の道』 https://www.amazon.co.jp/dp/
© - BASE, Inc. 『時を超えた建設の道』 • ⼀連の著作の背景理論を述べた理論書 • 「無名の質(QWAN: Quality
Without A Name)」 • ⽣き⽣きとした建物や町が持つ特性
© - BASE, Inc. 第⼆章まとめ • 建築家アレグザンダーによる理論 • 建築‧計画するための「6つの原理」 •
「パタン‧ランゲージ」 • 「無名の質」
t t 令和PHPer
© - BASE, Inc. 本トークの構成について • 序章:ブランコの⽐喩 • 第⼆章:クリストファー‧アレグザン ダーの理論
• 第三章:ソフトウェア設計への展開 • 終章:まとめ
t t 令和PHPer
© - BASE, Inc. OOPSLA • Object-Oriented Programming, Systems, Languages,
and Applications • オブジェクト指向に関するシンポジウム • 1986年 オレゴンにて第⼀回開催
© - BASE, Inc. アレグザンダー⽒の理論の適⽤の初め https://en.wikipedia.org/wiki/Ward_Cunningham https://en.wikipedia.org/wiki/Kent_Beck Ward Cunningham Kent
Beck
t t 令和PHPer
© - BASE, Inc. パタン‧ランゲージへの興味 https://www.amazon.co.jp/dp/ Kent Beck⽒は、⼤学⽣のときに ⽣協でこの書籍を読んだそう
http://wiki.c .com/?SemiconductorTestSystemsGroup
© - BASE, Inc. パターンを使ったシステム設計の試み • システム利⽤者に最終設計をしてもらう • ユーザーインターフェースに関するパ ターン5つ収集
• パターンを使って設計してもらう
© - BASE, Inc. 1987年 “Using Pattern Languages for Object-
Oriented Programs” http://c .com/doc/oopsla .html
© - BASE, Inc. Using Pattern Languages for Object-Oriented Programs
• ユーザーインターフェースの設計をシステム設計 に取り込む • 旧来の設計⽅法論(構造化分析‧エンティティリ レーションシップ)は有効ではないという主張 • アレグザンダーのパタン‧ランゲージを取り⼊れ る
© - BASE, Inc. • Erich Gamma⽒がソフトウェアの設計 に繰り返し現れる構造に着⽬するように なる 繰り返し現れる構造への着⽬
© - BASE, Inc. 1988年 “ET++ - An Object-Oriented Application
Framework in C++ “ http://citeseerx.ist.psu.edu/viewdoc/download?doi= . . . . &rep=rep &type=pdf
© - BASE, Inc. 1992年 “Documenting Frameworks using Patterns” /
Ralph E. Johnson https://www.researchgate.net/publication/ _Documenting_Frameworks_Using_Patterns
© - BASE, Inc. 1994年 GoF (Gang of Four) •
1992年 OOPSLAで、Erich Gamma、Richard Helm、Ralph E. Johnson、John Matthew Vlissides の4⼈組が顔合わせ • 1994年10⽉、書籍『オブジェクト指向における再 利⽤のためのデザインパターン』を発表 • ソフトウェア設計において繰り返し現れる構造を パターンとしてまとめる
© - BASE, Inc. 1996年~ C プロジェクト • C: Chrysler
Comprehensive Compensation project • 1996年、Kent BeckがChrysler社に呼ばれる • COBOLで書かれた給与計算プログラムを Smalltalkに置き換えるプロジェクト • これまでのコミュニティのパターンを徹底的に実 践
© - BASE, Inc. C プロジェクトで実践されたプラクティス • Unit Testing •
Integration, Relentless Testing • Short Iterations • YAGNI (You’re NOT gonna need it!) • Code Ownership • Pair Programming • etc
© - BASE, Inc. 1999年 『XP エクストリーム‧プログラミング⼊⾨』 • Kent Beckによる発表の書籍
• 良いとされている⾏動指針を極端なまで に実践してみようという発想 • C プロジェクトで培ったプラクティス をまとめた
© - BASE, Inc. 第三章まとめ • アレグザンダーのパタン‧ランゲージの 取り組みをソフトウェア設計に取り⼊れ る試み •
GoF デザインパターン • XP
t t GoF 令和PHPer XP
© - BASE, Inc. まとめ • 序章:ブランコの⽐喩 • 第⼆章:クリストファー‧アレグザン ダーの理論
• 第三章:ソフトウェア設計への展開 • 終章:まとめ
© - BASE, Inc. まとめ • ソフトウェア開発は⼤きく建築設計の理 論に影響を受けている • デザインパターン‧XPは、Kent
Beck とその周辺コミュニティが起こしたムー ブメントであり、アレグザンダーの思想 をプログラミングの世界に持ち込む試み
© - BASE, Inc. パタン‧ランゲージとの対応 • 「町」 ≈ アーキテクチャ •
ex. Layers, MVC etc • 「建築」 ≈ GoFのデザインパターン • 「施⾏」 ≈ 各⾔語での実装パターン • ex. Smalltalkベストプラクティスパターン 書籍 江渡 浩⼀郎. パターン、Wiki、XP 時を超えた創造の原則
© - BASE, Inc. アレグザンダーの6つの原理とXP . 有機的秩序の原理 ≈ ストーリー .
参加の原理 ≈ 実顧客の参加 . 斬新的成⻑の原理 ≈ インクリメンタル設計‧配 置 . パターンの原理 ≈ ストーリー . 診断の原理 ≈ 常時結合‧テストファーストプロ グラミング . 調整の原理 ≈ 根本原因の分析 書籍 江渡 浩⼀郎. パターン、Wiki、XP 時を超えた創造の原則
© - BASE, Inc. この流れを知って • 単純にプラクティスとして覚えて実践す るよりも、その背景にどういう成り⽴ち があるか知ると、かけがえのない歴史の 積み重ねの結果だと分かる
© - BASE, Inc. よくみるブランコの⽐喩 https://tech.nikkeibp.co.jp/it/article/COLUMN/ / /
© - BASE, Inc. Special Thanks • 〈建築理論研究 07〉──クリストファー‧アレグ ザンダー『形の合成に関するノート∕都市はツ
リーではない』『パタン‧ランゲージ』 • http:// plus .jp/monthly/ / /- .php
© - BASE, Inc. おしまい