61
By By 高煥堂 高煥堂 [email protected] [email protected] 海峽兩岸 海峽兩岸 智慧電視 智慧電視&家庭商業策略與技術論壇 家庭商業策略與技術論壇 http://home-cloud.blogspot.tw/ http://home-cloud.blogspot.tw/ A段架構師:組合思維

Part b03 a段架構師-組合思維_twok

Embed Size (px)

Citation preview

Page 1: Part b03 a段架構師-組合思維_twok

基於軟硬整合觀點

By By 高煥堂高煥堂 [email protected] [email protected]

海峽兩岸海峽兩岸智慧電視智慧電視&&家庭商業策略與技術論壇家庭商業策略與技術論壇http://home-cloud.blogspot.tw/http://home-cloud.blogspot.tw/

A段架構師:組合思維

Page 2: Part b03 a段架構師-組合思維_twok

內容內容

1. <創新組合派>架構設計2. 架構師的職責:願景、組合、創新、未來性 -- Vision(願景)從哪裡來? -- 組合與創新 -- 未來性:包容改變

Page 3: Part b03 a段架構師-組合思維_twok

基於軟硬整合觀點

11、、<<創新組合派>架構設計

Page 4: Part b03 a段架構師-組合思維_twok

• 架構設計有兩個基本技藝:抽象與組合(封裝)。因此衍生兩個不同的架構設計流派:

◎抽象思維派:致力於抽象出穩定、可靠、不變的共同性架構;亦即,追求<萬變不離其宗>的宗。

◎創新組合派:致力於組合出具體獨特性的創新架構;亦即,追求<與眾不同>的特質。

Page 5: Part b03 a段架構師-組合思維_twok

• <創新組合派>架構師以“組合”為目標,先訂定接口(Interface)來支援組合,並以接口包裝內部的結構,讓內部結構也是可以變動的,以便支援彈性地重構。

Page 6: Part b03 a段架構師-組合思維_twok

基於軟硬整合觀點22、、架構師的職責:架構師的職責: 願景、組合、創新、未來性願景、組合、創新、未來性

Page 7: Part b03 a段架構師-組合思維_twok

創新(組合)

願景(Vision)

未來性(Change)

Page 8: Part b03 a段架構師-組合思維_twok

• 架構師職責有4個要項:願景、組合、創新、未來性。

• 對於業主而言,願景是目標,組合創新是手段

• 然而,對於架構師而言,願景則是手段,組合創新是目的。

• 至於需求(Requirements)則代表現實性。願景和需求都隨時間而變,所以架構決策必須具有未來性。

上圖說明:

Page 9: Part b03 a段架構師-組合思維_twok

◎業主的Vision是想要能<飛>,架構師把一群各自<不會飛>的模組(如輪胎、引擎、機翼、機尾、油箱等),以精緻架構將它們巧妙地組<合>起來,竟然整體就飛起來了。架構師的職責是要創造<會飛>的整體(whole),而不是去分析、抽象和開發不會飛的部件(part)。

願景:願景:想飛想飛;; 手段:手段:組合組合

Page 10: Part b03 a段架構師-組合思維_twok

◎賈伯斯說:“早在我把Mac製造出來時,它的樣子已經栩栩如生站在我面前,我要說這個產品一直都存在,只是沒有人看過它,而我只是發現它的那個人。”<<摘自30雜誌>> 。

Page 11: Part b03 a段架構師-組合思維_twok

◎架構設計涵蓋一連串的決策。管理學大師 比得.杜拉克(Peter F. Drucker)指出:”決策往往不是從真相開始的,而是從想法開始。一位決策者對於他在行的領域,如果不產生想法的話,表示他沒有敏銳的洞察力。沒有想法,而只能依賴需求分析、從中尋找真相,然 後 採 取 行 動 , 是 極 為 危 險 的 。 ”

Vision( Vision(願景願景))從哪裡來從哪裡來??

Page 12: Part b03 a段架構師-組合思維_twok

• 義大利羅伯特教授說道,帶來重大革新的公司(如Apple)都會提出一個願景(Vision),告訴人們應該去追求的事物。“這種領悟事物的洞察力並不是從客戶向Apple傳遞的,而是相反的路徑,使用者去聆聽Apple的聲音遠比它聆聽客戶的多。”

Page 13: Part b03 a段架構師-組合思維_twok

• 羅伯特教授說,“聽取消費者建議對於漸進的革新是可行的,但絕難產生重大突破。”這是一種關於消費者在未來想要什麼的先見之明。Apple通過這種方式改變了人們對世界的認知。

Page 14: Part b03 a段架構師-組合思維_twok

Apple前首席設計師 Robert Brunner說道:

“通常偉大產品的成功之道並不是從草圖和定義開始的,而是以一個點子(想法)開始,形成一條切實可行的路;然後對此不斷開發和經營,這是一個有意而為的戰略性過程。”

Page 15: Part b03 a段架構師-組合思維_twok

組合與創新組合與創新

• 有些人認為,架構設計是要尋覓系統的共通性。 其實,架構是獨一無二的,架構設計是追求獨特性的、氣象萬千的、與眾不同的嶄新組合。

Page 16: Part b03 a段架構師-組合思維_twok

賈伯斯說:「創造無非就是把事物聯結起來,…即若是非凡的創意通常也不過是對已有事物進行的新組合而已。」

Page 17: Part b03 a段架構師-組合思維_twok

Gelb寫一本關於達文西(da Vinci)的書:<<7 Brains:怎樣擁有達文西的7種天才>>寫道:

「能不能看出事物的關係和模式, 並做出不尋常的組合和關聯, 乃是創造力的核心要素。」

Page 18: Part b03 a段架構師-組合思維_twok

共通性:許多人熱衷於「亂中有序」,致力於分析(Analysis),並對分析結果進行抽象(Abstraction),抽出萬變不離其「宗」,把此宗視為不變的序(Order)或本質(Essence),然後基於這本質來進行產品開發。

共通性共通性 vs. vs. 獨特性獨特性

Page 19: Part b03 a段架構師-組合思維_twok
Page 20: Part b03 a段架構師-組合思維_twok

例如在飞机业里,架构师的愿景是把一群各自「不会飞」的组件(如轮胎、引擎、机翼、机尾、油箱等),以精致架构将它们巧妙地组「合」起来,竟然整体就飞起来了。

獨特性(與眾不同):例如在飛機行業裡,架構師的願景是把一群各自「不會飛」的組件(如輪胎、引擎、機翼、機尾、油箱等),以精緻架構將它們巧妙地組「合」起來,竟然整體就飛起來了。

Page 21: Part b03 a段架構師-組合思維_twok
Page 22: Part b03 a段架構師-組合思維_twok

• 心中先有合的目標(Vision),才來做分的動作。

• 分離出很多接口,依據接口來組合許多Unknown組件。

Page 23: Part b03 a段架構師-組合思維_twok

Ex-1. 分出接口,组合熟悉的组件

Page 24: Part b03 a段架構師-組合思維_twok

Ex-2. 依据接口,组合外来的组件

Page 25: Part b03 a段架構師-組合思維_twok

肯德基:客人來之前先做分(師傅), 客人來了做合(工讀生)。

時間點不同

Page 26: Part b03 a段架構師-組合思維_twok

全聚德:客人來了才做分(師傅)。

Page 27: Part b03 a段架構師-組合思維_twok

軟體的分與合

Page 28: Part b03 a段架構師-組合思維_twok
Page 29: Part b03 a段架構師-組合思維_twok
Page 30: Part b03 a段架構師-組合思維_twok

兩派的”抽象角度”不同

前言

Page 31: Part b03 a段架構師-組合思維_twok

抽象思維派

Page 32: Part b03 a段架構師-組合思維_twok

創新組合派

Page 33: Part b03 a段架構師-組合思維_twok

• 其實,分與合,兩者都是一種抽象• 抽象派與組合派,兩者的差異只在於:抽

象視角的不同而已。• 無論那一種視角(Viewpoint),抽象的目的

都是:想得到簡單。• 想從簡單中掌握複雜。

Page 34: Part b03 a段架構師-組合思維_twok

• 於是,• 目的一樣:想得到簡單;然後從簡單中掌

握複雜。• 手段一樣:抽象(Abstraction)。• 視角不同:由於對本質(Essence)的認知不

同。

Page 35: Part b03 a段架構師-組合思維_twok

第1種認知

• 第1種認知:”本質(Essence)”這個字眼的涵意是“道”。而道不變,本質不變,真理是簡單的。所以我們在開發軟體時,就好比建一棟房子,下面的地基不變,上面的房屋是可變的。所以架構師是建造平臺(地基)的人,是要找不變的人。

Page 36: Part b03 a段架構師-組合思維_twok

• 第2種認知:”本質(Essence)”涵意是“不可或缺的”特性,例如在牛津字典裡,這個字眼的涵義是“不可或缺的”,並非”穩定不變”的。所以兩種認知有很大的差異。

第2種認知

Page 37: Part b03 a段架構師-組合思維_twok

• 無論那一種認知,都想要:從複雜中得到簡單,然後從簡單中掌握複雜。

• 因為我們在遇到複雜的時候總是先找簡單,因為簡單不會讓我們害怕。那麼怎樣找到簡單?就是我們怎樣從複雜中得到簡單?人類最擅長的做法就是抽象。

Page 38: Part b03 a段架構師-組合思維_twok

抽象視角-1:基於本質是”簡單不變的”

• 把很多具象的東西去掉差異性的東西,這叫抽象。例如把一群貓都抓過來你會發現它們的鬍鬚都不一樣,就對鬍鬚視而不見而抽象掉;而尾巴也都不一樣,就把尾巴去掉,就對尾巴視而不見而抽象掉。在心中留下來的,就是貓不變的本質了。

• 只是,一隻沒有鬍鬚、沒有尾巴的東西還稱為<貓>嗎?

Page 39: Part b03 a段架構師-組合思維_twok

抽象視角-2:基於本質是”不可或缺的”

• 如果本質(Essence)”是指不可或缺的,又怎樣才能達到簡單呢?只要想一想,女士們為什麼要帶皮包?把貓(不可或缺的)尾巴放進皮包裡不就得到簡單了麼?把不可或缺的複雜特性妥善地包裝起來,也是一種抽象。

Page 40: Part b03 a段架構師-組合思維_twok

• 中國古代就有這個理念,孫悟空會72變,大鬧天宮,唐三藏怎麼處理?就是在孫悟空的頭上安一個緊箍咒,念緊箍咒孫悟空就會頭疼,所以唐僧還是達到用簡單去控制複雜,但他沒有去傷害孫悟空。

Page 41: Part b03 a段架構師-組合思維_twok

軟體本質是複雜? 還是簡單?

• 一位元著名的軟體專家Fred Brooks,40年前就在他的《人月神話》一書裡說道:“軟體的複雜是本質性的,並非表像而已” (The complexity of software is an essential property, not an accidental one.) 。

Page 42: Part b03 a段架構師-組合思維_twok

• 另外,著名軟體架構師 周愛民先生在他的《大道至簡》一書裡是說:“軟體的本質是簡單的”。

• 其實這是一體的兩面,分別是兩個命題,軟體有複雜的一面,也有簡單的一面。

Page 43: Part b03 a段架構師-組合思維_twok

• 從一堆軟體函數(Function)中抽象出 "抽象函數“。

• 也從一堆軟體資料(Data)中抽象出 "共同資料結構"。

抽象演練:視角1

可能抽掉

不可或缺的複雜

Page 44: Part b03 a段架構師-組合思維_twok

一堆函數(Function)

抽象函數共同數據結構

一堆數據項(Data Item)

Page 45: Part b03 a段架構師-組合思維_twok

• 從具象的一堆函數和一堆資料之中,抽象或設計出 "類(Class)結構" 來包容具象或抽象的函數&數據。

容納各項

不可或缺的複雜

抽象演練:視角2

Page 46: Part b03 a段架構師-組合思維_twok

一堆函數(Function)

一堆數據項(Data Item)

Page 47: Part b03 a段架構師-組合思維_twok

Data元素

Function元素

Class造形

Page 48: Part b03 a段架構師-組合思維_twok

內涵

類造形

Page 49: Part b03 a段架構師-組合思維_twok

楓葉

楓葉

類造形

Page 50: Part b03 a段架構師-組合思維_twok

鸚鵡(內

涵)

類造形

鸚鵡類

Page 51: Part b03 a段架構師-組合思維_twok

內涵

EIT造形

Page 52: Part b03 a段架構師-組合思維_twok

放映機&影片選擇

顯示MP4於螢幕上

Page 53: Part b03 a段架構師-組合思維_twok

◎架構師清晰的Vision並非要準確預測世界的未來景象,未來世界是不可知的。但是我們的目前決策會影響世界未來的發展軌跡。◎所以Vision是期望的未來景象;對架構師而言,它是手段,不是目的。真正目的是:要找出有助於實現願景的目前決策,這樣的決策才真正具有未來性。

未來性:包容改變未來性:包容改變

Page 54: Part b03 a段架構師-組合思維_twok

決策要有未來性決策要有未來性

Page 55: Part b03 a段架構師-組合思維_twok

設計出未來性:例如,包容通信的<未來變化>

Page 56: Part b03 a段架構師-組合思維_twok

例如,Android終端設備裡的晶片常來自不同的供應商;此時設計一個架構來:1. 確保底層晶片的可抽換性;2. 同時實現了上層應用的跨平台(跨晶片)。

設計出未來性:例如,底層可抽換、上層跨平台。

Page 57: Part b03 a段架構師-組合思維_twok

例如:缺乏未來性的架構

Page 58: Part b03 a段架構師-組合思維_twok

設計出未來性:例如,設計外掛程式、 創新組合

Page 59: Part b03 a段架構師-組合思維_twok

抽換外掛程式,創新組合。

Page 60: Part b03 a段架構師-組合思維_twok

• 有些人認為,架構設計是要尋覓系統的共通性。 其實,架構是獨一無二的,架構設計是追求獨特性的、氣象萬千的、與眾不同的嶄新組合。Apple 賈伯斯說:「創造無非就是把事物聯結起來,…即若是非凡的創意通常也不過是對已有事物進行的新<<組合>>而已。」

Page 61: Part b03 a段架構師-組合思維_twok

高煥堂 [email protected]

Thanks…