高煥堂老師的軟件架構(gòu)的講座
上次有幸參加了高煥堂老師的軟件架構(gòu)的講座:
總結(jié)了下面幾點(diǎn):
1.做框架的思想很簡(jiǎn)單,就是所謂的雕刻之道,軟件就如一塊大理石,把多余的部分去掉,那就可以了
再比如如何做汽車(chē)的框架,為了滿足汽車(chē)能在沙灘上,地面上,山坡上跑,我們只要把輪胎去掉,那么
剩下的就是框架,做軟件完整的API不要寫(xiě),留給空位就行了。
2.麥肯錫的思路(反向思維):當(dāng)需要想完成某個(gè)目標(biāo)的時(shí)候,往往一般人會(huì)想我現(xiàn)在應(yīng)該先去做什么,然后
再做什么,這樣的思路往往出來(lái)的step by step 只有一種,如果反向思維,從現(xiàn)在目標(biāo)開(kāi)始反向推理出前一
階段的幾種可能性,然后從分別對(duì)這幾種可能性再向前推,以此類推可以形成一個(gè)樹(shù)狀,然后根據(jù)先有情況
去除不能滿足的鏈路,這樣同樣的問(wèn)題 你的思路和方法以及可選擇的路線就多很多,往往不是一條。這就是
反向思維
3.如果把軟件生產(chǎn)比作工廠,請(qǐng)問(wèn)軟件工廠的原料是什么? 是需求? 如果回答是需求,那就錯(cuò)了。
需求和架構(gòu)沒(méi)有關(guān)系。需求是桌面,架構(gòu)是桌腳,桌腳的要幾個(gè),什么形狀和桌面沒(méi)有關(guān)系,只要桌腳能支持
桌面就行了。
4.架構(gòu)就像萬(wàn)里長(zhǎng)城,他是保護(hù)自己人的,是自己人能安居樂(lè)業(yè),外面的多變都被萬(wàn)里長(zhǎng)城擋在外面,
框架下面的可以多變,沒(méi)錢(qián)就改版,改版就有錢(qián)。
5.寫(xiě)框架的是強(qiáng)龍,寫(xiě)AP的是地頭蛇。買(mǎi)主出現(xiàn)才有地頭蛇。也就是需求出現(xiàn)的時(shí)候才有地頭蛇。
6.軟件哲學(xué),如何讓先寫(xiě)的call后寫(xiě)的?引入接口和基類就能完成這個(gè)問(wèn)題
7.子接口因?yàn)槎际腔A(chǔ)基類,那么他們之間怎么new,如果他們要new 也就向框架要,這樣才能不違背框架的用意。
8.框架先不要考慮太多效率的問(wèn)題,效率的問(wèn)題在后面慢慢修改,這樣可以減少考慮的因素,更容易理清。
9.強(qiáng)龍要有主控權(quán),那么框架所做的事情就是能讓強(qiáng)龍能包容改變
10.如果不想子系統(tǒng)繼承那么就用final 關(guān)鍵字
11.如果兩個(gè)類 不要相互繼承,但是要他們相互call,那么就在他們里面分別定義一個(gè)方法,相互call
12.基類告訴子類,讓子類call她,那么子類才能call基類,沒(méi)有call子類,那么子類不能先去call她。
13一般進(jìn)程process 是不共享的,他們?cè)诓煌奈恢脜^(qū)間,如果要跨進(jìn)程的call,那么用IPC。而Process
一般分Main thread;Message Quene;Main Looper。其中Main thread是主線程,他通過(guò)Looper 一直查看他的
MQ,MQ記錄要求做的事情,如果MQ里面有什么事情,那么Main thread 就拿到他把他做掉。
14.Main thread 主要是處理UI相關(guān)的用戶事件,而且一般有時(shí)間設(shè)置比如每個(gè)function不能超過(guò)5s。
15Andriod中是通過(guò)IBinder 來(lái)實(shí)現(xiàn)跨進(jìn)程的通信。
16.主線程一定有一個(gè)MQ 一個(gè)Looper。而小線程沒(méi)有,所有小線程從一開(kāi)始到執(zhí)行完就結(jié)束了,但是小線程
不能touch UI,只有Main thread 可以touch UI相關(guān)的用戶事件。
17 架構(gòu)師是在暗室里面抓黑貓,在沒(méi)有路的情況下找出一條可行之路,所有沒(méi)有步驟可言。
18 做框架 盡量把人家會(huì)抓住你的地方分開(kāi),如果實(shí)在分不開(kāi),可以當(dāng)壁虎,把壁虎的尾巴給人家抓。
19 框架的東西盡量要用c++寫(xiě),因?yàn)閏++比起java 安全,快,無(wú)反編譯。
20 做一個(gè)系統(tǒng)一定要只要你的控制中心和整合中心,而且他們只有一個(gè)并且只有一個(gè)連接。控制中心好比大腦
而整合中心好比骨骼。在控制中心可以增加狀態(tài)機(jī)來(lái)增加控制力和安全性。
posted on 2010-01-28 14:29 linugb118 閱讀(3025) 評(píng)論(4) 編輯 收藏