qcon 10个提高架构质量的观点

50
1 10 個提高架構質量的觀點 主講人:高煥堂 [email protected]

Upload: youzitang

Post on 14-Jun-2015

452 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Qcon 10个提高架构质量的观点

1

10 個提高架構質量的觀點

主講人:高煥堂[email protected]

Page 2: Qcon 10个提高架构质量的观点

2

Introduction

IT架構師和建築師類似, 都必需具備多重觀點。同樣地,欲提高架構的質量,

也依賴架構師兼具多重觀點。

Page 3: Qcon 10个提高架构质量的观点

3

Architecture of Architectures

•本文基於5個元素觀點, 從這些觀點看到5項元素架構, 將之融合為一個整體。

•然後,從10個觀點 觀看上述的整體, 探討我們的優勢與弱點, 始能有效提升架構質量 及產業效益。

Page 4: Qcon 10个提高架构质量的观点

4

Part #1 架構與觀點

Page 5: Qcon 10个提高架构质量的观点

5

架構:融合“序”與“繁雜多變”

VISA信用卡創始人哈克(Dee Hock)融合了“序”與“繁雜多變”,創造了傑出的VISA系統架構。

參閱:哈克著 <<亂序>>,李明譯,台灣大塊文化出版。

Page 6: Qcon 10个提高架构质量的观点

6

容易:以 “序” 包容 “繁雜多變”

古代中國的建築師(架構師)設計了萬里長城,

包容了北方的“繁雜多變”,創造了中原長治久安之“序”。

Page 7: Qcon 10个提高架构质量的观点

7

多重觀點:兩隻眼睛的用意

讓我們兼顧“序”與“繁雜多變”。

“序”是绝佳的手段,“容易”是甜美的目標。

Page 8: Qcon 10个提高架构质量的观点

8

Part #2 5個元素觀點

Page 9: Qcon 10个提高架构质量的观点

9

IT架構的傳統觀點(EV1)

傳統的單一元素觀點:

以技術為Input,以產品為Output。

Page 10: Qcon 10个提高架构质量的观点

10

近年來熱門新觀點(EV2)

目標:以IT系統支撐企業。如同:IT系統架構是樹幹, 企業架構是樹枝。

Page 11: Qcon 10个提高架构质量的观点

11

觀點(BV2)的實踐:例如SOA

手段:兩種架構融合為一

Page 12: Qcon 10个提高架构质量的观点

12

觀點(BV2)的實踐:例如DoDAF

Page 13: Qcon 10个提高架构质量的观点

13

中華文化特色之觀點(EV3)

目標:以文化支撐技術。

如同:文化架構是樹幹,

技術架構是樹枝。

Page 14: Qcon 10个提高架构质量的观点

14

觀點(BV3)的實踐:Façade Pattern

四合院 VS. Façade Pattern

Page 15: Qcon 10个提高架构质量的观点

15

觀點(BV3)的實踐:Interface 設計

<<禮記>>: “良弓之子,必學為箕”。

接口、卡榫與基類

Page 16: Qcon 10个提高架构质量的观点

16

創意思考之觀點(EV4)

Page 17: Qcon 10个提高架构质量的观点

17

觀點(EV4)的實踐:創意

Gelb寫一本關於達芬奇(da Vinci)的書:<<7 Brains:怎樣擁有達芬奇的7種天才>>寫道:「能不能看出事物的關係和模式,

並做出不尋常的組合和關連, 乃是創造力的核心要素。」

Page 18: Qcon 10个提高架构质量的观点

18

觀點(EV4)的實踐:逆向推理

然而,從那個角度去觀察事物呢? 又以什麼新的形去組合及連結這些事物呢?該書寫道:達芬奇經常寫下『務必徹徹底想清楚』和『先考慮終點』。

Page 19: Qcon 10个提高架构质量的观点

19

觀點(EV4)的實踐:假設/實證

Gelb在書中提到,達文西擅用實證,從錯誤中學習,以經驗來實證知識的真假,如下:「文藝復興的真正意義,在於它改變了許多基本假設、成見和信念。達文西應用了實證原則,挑戰當時的世界觀,成為這場革命的先驅。」

Page 20: Qcon 10个提高架构质量的观点

20

觀點(EV4)的實踐:思考架構

Page 21: Qcon 10个提高架构质量的观点

21

IT產業之觀點(EV5)

Page 22: Qcon 10个提高架构质量的观点

22

觀點(EV5)的實踐:規模經濟

IT產業架構將創新之IT系統架構「創造岀大型規模經濟及效益。」

目標:以IT系統支撐IT產業。如同:IT系統架構是樹幹, IT產業架構是樹枝。

Page 23: Qcon 10个提高架构质量的观点

23

觀點(EV5)的實踐:強龍 + 地頭蛇

強龍只做系統40%, 預留60%工作給地頭蛇,但強龍享有60%的收益。

例如:Google 的Android Framework, 微軟的.NET Framework等。

Page 24: Qcon 10个提高架构质量的观点

24

觀點(EV5)的實踐:軟硬整合是王道

軟件是樹幹,

硬件是樹葉,企業是果實。

Page 25: Qcon 10个提高架构质量的观点

25

元素架構之Summary

思考、文化是我們的

優勢,最欠缺的是:

IT產業/IT系統架構。

Page 26: Qcon 10个提高架构质量的观点

26

Part #3 10個整體觀點

Page 27: Qcon 10个提高架构质量的观点

27

衍生出整體架構之多重觀點

Page 28: Qcon 10个提高架构质量的观点

28

觀點View #1 ~ #5

V1. 架構是創意的表現,架構來自創意與思考, 創意是假設(Hypothesis)。V2. 假設需要檢驗,以需求檢驗創意與思考。V3. 創意根源于固有文化, 設計是文化與技術相遇的地方。V4. 從文化體悟序(Order)之美, 追求建立美的IT系統架構。V5. 以標準化與互換性衡量美之效益。

Page 29: Qcon 10个提高架构质量的观点

29

觀點View #6 ~ #10

V6. 以序容易(包容改變),包容企業的繁雜多變。V7. 上層架构設計是IT系統與企業相遇的地方。V8. 下層架构設計是軟件與硬件相遇的地方。V9. 上下層虛實相依,實踐美之IT系統架構。V10. 架構質量發揮於IT系統與IT產業相遇的地方。

Page 30: Qcon 10个提高架构质量的观点

30

V1. 架構是創意的表現, 架構來自創意與思考, 創意是假設(Hypothesis)。

架構師 / 建築師的Top Down思維, 又稱為逆向推理。開發者(Developers)是Bottom Up思維, 又稱為正向推理。

Page 31: Qcon 10个提高架构质量的观点

31

以最终目標(Goal)為起點

Step-1. 找到燈塔

Page 32: Qcon 10个提高架构质量的观点

32

V2. 假設需要檢驗, 以需求檢驗創意與思考。

架構師 / 建築師的產出是:可實現的計畫。然後交由開發者去執行。

Step-2. 找到航線

Page 33: Qcon 10个提高架构质量的观点

33

V3. 創意根源於固有文化, 設計是文化與技術相遇的地方。

中華文化讓我們面對科技變化時,不在心浮氣燥,

而得到平靜心靈和流暢思緒, 進而得到高雅的設計。文化源源不絕提供許多思維上的模式(Pattern), 讓我們在面對設計上全新的挑戰時, 得到創意及其實踐的勇氣。當設計成為文化與技術相遇的地方,

則設計品就呈現出白裡透紅的高雅氣質了。Step-3. 注入文化涵量

Page 34: Qcon 10个提高架构质量的观点

34

V4. 從文化體悟序(Order)之美, 追求建立美的IT系統架構。

易经干卦:天的多變。

坤卦:大地的繁(即複雜繁榮) 。 Google Android Framework: 包容複雜而呈現簡單的序, 支持IT產業及企業的無盡繁榮。

Step-4. 注入美的涵量

Page 35: Qcon 10个提高架构质量的观点

35

不登長城,不知“序”為何物

古代的偉大建築師(即架構師)深深體會中原廣大居民內心深處的渴望:「序」。

因為北方游牧民族的干擾,而讓他們失序了。

因此他們內心並不是渴望敏捷地應付游牧民族

的干擾,而是能安居樂業的穩定之序。

Page 36: Qcon 10个提高架构质量的观点

36

V5. 以標準化與互換性衡量美之效益。

文藝復興時代,威尼斯(Venice)擁有強大武裝艦隊,其明訂標準化與互換性的要求,例如:所有的弓,必需符合發射任何箭矢之用。所有的舵柱,必需按照相同尺寸和樣式製造。所有船具的規格介面均需一致,列為船載配備,

可在別港或航行中更換修理。

因為強盛,所以要求標準化和互換性。

反之,不追求標準化和互換性的IT產業,意味著不夠強強盛。

Step-5. 依循強盛指標

Page 37: Qcon 10个提高架构质量的观点

37

V6. 以序容易(包容改變), 包容企業的繁雜多變。

古代的建築師擅長於設計各種長城,包容關外的繁雜多變,從失序中重建序。

現代的架構師擅長於設計像SOA的IT長城,包容企業的繁榮多變;於是,從人月神話中,

締造IT人員安居樂業的殿堂。

Step-6. 興建IT長城

Page 38: Qcon 10个提高架构质量的观点

38

V7.上層架構設計是 IT系統與企業相遇的地方。

手段:以序包容企業的繁榮多變,

目的:維持IT系統的變動自由度。 (以SOA為例)

Step-7. 維持IT系統自由度

Page 39: Qcon 10个提高架构质量的观点

39

V8.下層架構設計是 軟件與硬件相遇的地方。

Step-8. 維持硬件 模組自由度(以Android為例)

Page 40: Qcon 10个提高架构质量的观点

40

V9. 上下層虛實相依, 實踐美之IT系統架構。

Step-9. 虛實相依

(以Android為例)

Page 41: Qcon 10个提高架构质量的观点

41

V10. 架構大規模效益發揮於 IT系統與IT產業相遇的地方。

Step-10. 強龍不壓地頭蛇 (以Android為例)

Page 42: Qcon 10个提高架构质量的观点

42

Part #4 結語探討我們的優勢與弱點,始能有效提升架構質量及產業效益。

Page 43: Qcon 10个提高架构质量的观点

43

我們最欠缺的是什麼?

思考、文化是我們的優勢,

最欠缺的是:IT產業/IT系統架構。因此優勢無從發揮!!

Page 44: Qcon 10个提高架构质量的观点

44

優勢無從發揮之困境

• 沒有完美IT系統架構的支撐, 無法建立生產分工的CN(Co-Design Nation-wide)產業架構。

• 比喻:張良是Architect, 韓信是Developer Leader ,

韓信滿京城表示沒有分工產業架構。參閱:高煥堂 撰寫 “CN軟件策略”,<<程序員>> May 2007。

Page 45: Qcon 10个提高架构质量的观点

45

優勢無從發揮之困境(續)

• 沒有完美IT系統架構的支撐, 無法建立強龍+地頭蛇的聯合服務 產業架構。

• 比喻:請看下一頁的愚公移山故事。

Page 46: Qcon 10个提高架构质量的观点

46

Google Android 的啟示:愚公移山

大家幾乎都聽過愚公移山的故事,但是大家常把焦點擺在愚公和移山,而忽略了畚「箕」的角色。

禮記.學記篇上有言:良弓之子,必學為箕。其意思是,欲做出優良的弓,必先好好研究

其模子(即箕)。

Page 47: Qcon 10个提高架构质量的观点

47

最近許多人知道Google推出轟動武林、驚動萬教的Android手機平台。

但是我們都關心如何在該平台上開發應用程式,

卻忽略了Android是個框架(Framework),而框架裡含有成百上千個「箕」類(註:基類是Super Class的譯詞)。

Google Android 的啟示:架構的威力

Page 48: Qcon 10个提高架构质量的观点

48

移動時代IT產業的三個分工角色:做畚箕者:如Andriod開發團隊。畚箕買主:如Google公司。挑畚箕者:如Android應用程式師。

Google Android 的啟示:強龍所為何事?

Page 49: Qcon 10个提高架构质量的观点

49

因為缺乏白裡透紅的

IT產業/IT系統之架構。

Google Android 的啟示:為何只能當愚公?

參閱:高煥堂 的4本Google Android書籍 www.misoo1.com 或 www.android1.net 或 e-mail: [email protected] 詢問

Page 50: Qcon 10个提高架构质量的观点

50

Part #5 Q&A