Teddy Chen
teddy@teddysoft.tw
http://teddy-chen-tw.blogspot.tw/
Feb. 20 2014
• 超過18年軟體開發經驗。2012年7月
成立泰迪軟體,從事敏捷開發顧問、
教育訓練、軟體工具導入等服務。
• 2012年6月,出版暢銷書「笑談軟體
工程:敏捷方法的逆襲」,獲iTHome
週刊推薦為2012年iT人必看好書。
• 2009年取得Certified ScrumMaster。
• 2008年取得台北科技大學資工博士。
• 2007年起經營「搞笑談軟工」部落格。
Copyright@2014 Teddysoft
1994 年
GoF Design Patterns

Copyright@2014 Teddysoft
1936 : 奧地利
1958: 英國美國
Notes on the Synthesis of Form,
1964 (-1936 = 28)
The Oregon Experiment, 1975
A Pattern Language: Towns,
Buildings, Construction, 1977
The Timeless Way of Building,
1979 (-1936 = 43)

1979-1964 = 15
Copyright@2014 Teddysoft
1979~1994
這15年之間發生了什麼事?

Copyright@2014 Teddysoft
1964

《Notes on the Synthesis of Form》

1975
1977
1979

《The Oregon Experiment》
《 A Pattern Language》
《 The Timeless Way of Building》

1987
OOPSLA 87

Using Pattern Language for ObjectOriented Programs

1990

TOOLS 90,ECOOP/OOPSLA 90

1991

《 Advanced C++ Programming
Styles and Idioms》

1992

OOPSLA 91 Workshop
OOPSLA 92 Workshop

1993
1994
2001

Kent Beck
Ward Cunningham
Bruce Andersen
(Erich Gamma, Richard Helm)

Jim Coplien

Bruce Andersen
(Erich Gamma, Richard Helm,
Ralph Johnson, and John Vlissides)

Kent Beck, Grady Booch, etc.

Hillside Group
First PLoP Conference
《 Design Patterns》

Ward Cunningham, Ralph Johnson
GoF
《物件導向設計模式 Design Patterns》
葉秉哲

2004

10th PLoP Conference

2014

C. C. Agile Sprint 18
Copyright@2014 Teddysoft

Teddy, Kay參加
鄉民 XD
1994~2014
這20年之間又發生了什麼事?

Copyright@2014 Teddysoft
人家已經上太空
我們還在殺豬公
殺
迷之音: 上太空就不用殺豬公了嗎 XD

Copyright@2014 Teddysoft
1. The Timeless Way

Process, it cannot be attained
Pattern of event, geometric
patterns, cannot be made,
can only be generated

2. Quality (QWAN)

3. Gate

Pattern language

4. Way

Single mind, distributed acts, no
drawing, unfolding, on pattern at a
time, repair

5. The Kernel of the Way

Learning the disciple– and
shedding it

Copyright@2014 Teddysoft
茶道

政治

劍道/武術

繪畫

建築
Copyright@2014 Teddysoft

家庭

捷運

軟體開發
永恆之道只可透過流程
自行產生,不可強取

Copyright@2014 Teddysoft
茶道

政治

劍道/武術

繪畫

建築
Copyright@2014 Teddysoft

家庭

捷運

軟體開發
Quality Without A Name
(QWAN)

Copyright@2014 Teddysoft
說到「美」,你
會想到誰?

Copyright@2014 Teddysoft
Copyright@2014 Teddysoft
台鐵天使 餵無
手伯吃便當 10
萬人按讚

Copyright@2014 Teddysoft
Copyright@2014 Teddysoft
Copyright@2014 Teddysoft
請定義「幸福」

Copyright@2014 Teddysoft
問題:既然無法命名,要
如何描述與溝通無名特質?

Copyright@2014 Teddysoft
透過觀察Pattern (模式)
來得知特質的有無

Copyright@2014 Teddysoft
來源:http://zh.wikipedia.org/wiki/File:Magnet0873.png

Copyright@2014 Teddysoft
Copyright@2014 Teddysoft
組成建築、城市的特定模式可以是
有活力的,也可以是死氣沉沉的
具有越多有活力的模式,就越具有
無名特質的自我維持特性

Copyright@2014 Teddysoft
茶道

政治

劍道/武術

繪畫

建築
Copyright@2014 Teddysoft

家庭

捷運

軟體開發
建立領域相關的Pattern
Language

Copyright@2014 Teddysoft
Copyright@2014 Teddysoft
Pattern  單字
Pattern Language 句子

Copyright@2014 Teddysoft
一個Pattern解決一個特定的(小)問題
好幾個Pattern形成Pattern Language
便可解決較大的問題

Copyright@2014 Teddysoft
茶道

政治

劍道/武術

繪畫

建築
Copyright@2014 Teddysoft

家庭

捷運

軟體開發
•
•
•
•
•

分散式行動
單一心智
不須繁複設計圖
一次一個模式的展開過程
修復
這不是XP,什麼才是XP?
Copyright@2014 Teddysoft
茶道

政治

劍道/武術

繪畫

建築
Copyright@2014 Teddysoft

家庭

捷運

軟體開發
何本明菩
處來鏡提
惹無亦本
塵一非無
埃物台樹

PK

火頭僧—慧能禪師
(文盲)
Copyright@2014 Teddysoft

勿
使
惹
塵
埃

時
時
勤
拂
拭

心
如
明
鏡
台

身
是
菩
提
樹

大弟子神秀大師
直接由Force產生設計

《Notes on the Synthesis of Form》

Copyright@2014 Teddysoft
1. 世上存在某種永恆不變之道

此道只可透過流程自行產生,不可強取

2. 它具有某些無法命名的特質

透過觀察Pattern來得知特質的有無

3. 以PL作為求道的大門

建立領域相關的Pattern language

4. 實踐與套用PL

單一心智、分散式行動, 不須繁複設計
圖, 一次一個模式的展開過程, 修復

5. 最後,忘掉PL才可真正得道

學習方法—然後忘記它

Copyright@2014 Teddysoft
Copyright@2014 Teddysoft
A pattern is a solution to a problem
in a context.

A pattern is a proven solution to a
recurring problem in a specific
context, and more.
Copyright@2014 Teddysoft
欲知詳情,請報名參加:
Design Patterns這樣學就會了:入門實作班

Design Patterns這樣學就會了:進階實作班

Copyright@2014 Teddysoft
Copyright@2014 Teddysoft
1.
2.
3.
4.
5.

Window Per Task
Few Panes Per Window
Standard Panes
Short Menus
Nouns and Verbs

Copyright@2014 Teddysoft
Copyright@2014 Teddysoft
Copyright@2014 Teddysoft
Copyright@2014 Teddysoft
Copyright@2014 Teddysoft
Copyright@2014 Teddysoft
Copyright@2014 Teddysoft
Client
Type A

Server

Database

Copyright@2014 Teddysoft

Device B

Device C

Client
Type D
UI

Client
Type B
Client
Type C

User

Device A

Device D
<client>

<server>
User

Server

Client
Type A

Device A

Client
Type B

Device B

<client>

<client>

Client
Type C

Device C

<server>

<server>

Client
Type D

Device D

UI

<client>

Database

<server>

<client>

Copyright@2014 Teddysoft

<server>
<client>

User

Server

Device A

Client
Type B

<server>

Client
Type A

Device B

Plug-in

<client>

<client>

Client
Type C

<server>

<server>

Client
Type D

UI
<client>

Plug
-in

Device C

Device D

Database
<server>

<client>

Copyright@2014 Teddysoft

<server>
<client>

User

Server

Device A

Client
Type B

<server>

Client
Type A

Device B

Plug-in

<client>

<client>

Client
Type C

<server>

<server>

Client
Type D

UI
<client>

ORMapping

ORMapping

Plug
-in

Device C

Device D

Database
<server>

<client>

Copyright@2014 Teddysoft

<server>
<client>
State
Observer
Command …

User

Server

Device A

Client
Type B

<server>

Client
Type A

Device B

Plug-in
<client>

<client>

Client
Type C

<server>

<server>

Client
Type D

UI

<client>

ORMapping

ORMapping

Plug
-in

Device C

Device D

Database

<server>

<client>
Copyright@2014 Teddysoft

<server>
維護社會治安不僅是警察的責任

維持可擴充的軟體架構也不僅是架構師的責任
如果人人都是架構師,如何避免架構被改壞?

Copyright@2013 Teddysoft
問題:我只是要開發軟體,
又不是要出家,為什麼要知
道這一堆奇奇怪怪的東西?

Copyright@2014 Teddysoft
因為我們都是人

Copyright@2014 Teddysoft
而且是資訊人

Copyright@2014 Teddysoft
The Timeless Way
of Programming

Copyright@2014 Teddysoft
練拳不練功

到老一場空

練功不輕鬆

到老養生終

Copyright@2014 Teddysoft
• Patterns and Software: Essential Concepts and
Terminology by Brad Appleton
• History Of Patterns
– http://c2.com/cgi-bin/wiki?HistoryOfPatterns

• The Timeless Way of Building
• Kent Beck、Ward Cunningham、Christopher
Alexander、台鐵天使等照片節錄自網路

Copyright@2014 Teddysoft
Copyright@2014 Teddysoft

66

那一夜我們說Pattern design patterns 20周年-published