linugb118--java space

          Java

          高煥堂老師的軟件架構(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)  編輯  收藏

          Feedback

          # re: 高煥堂老師的軟件架構(gòu)的講座 2010-01-28 17:02 倫理電影



          來(lái)學(xué)習(xí)了!  回復(fù)  更多評(píng)論   

          # re: 高煥堂老師的軟件架構(gòu)的講座 2010-01-30 13:56 qd

          3.如果把軟件生產(chǎn)比作工廠,請(qǐng)問(wèn)軟件工廠的原料是什么? 是需求? 如果回答是需求,那就錯(cuò)了。
          需求和架構(gòu)沒(méi)有關(guān)系。需求是桌面,架構(gòu)是桌腳,桌腳的要幾個(gè),什么形狀和桌面沒(méi)有關(guān)系,只要桌腳能支持
          桌面就行了。

          ----------------------

          強(qiáng)烈反對(duì)這個(gè)說(shuō)法!!!!  回復(fù)  更多評(píng)論   

          # re: 高煥堂老師的軟件架構(gòu)的講座 2010-01-31 10:48 leekiang

          大部分都很有道理  回復(fù)  更多評(píng)論   

          # re: 高煥堂老師的軟件架構(gòu)的講座 2010-02-02 11:24 linugb118

          同學(xué):請(qǐng)問(wèn)如果現(xiàn)在是一個(gè)自行車(chē)工廠,他需要生產(chǎn)自行車(chē),請(qǐng)問(wèn)生產(chǎn)自行車(chē)的原料是什么? 是需求嗎? 顯然不是。軟件和實(shí)體的區(qū)別在于不可實(shí)體化,所有往往很多實(shí)體類似的東西,到軟件這邊就忽視掉了
          @qd
            回復(fù)  更多評(píng)論   



          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 玉树县| 赫章县| 冕宁县| 花莲县| 汉源县| 新巴尔虎右旗| 汪清县| 师宗县| 化隆| 偃师市| 若尔盖县| 云霄县| 徐闻县| 班玛县| 昌宁县| 阳信县| 宝丰县| 全南县| 阳春市| 乐清市| 高青县| 呼和浩特市| 获嘉县| 巨鹿县| 酒泉市| 四川省| 章丘市| 运城市| 浪卡子县| 海南省| 岳池县| 虎林市| 正阳县| 日照市| 漾濞| 通许县| 陆丰市| 绵阳市| 手机| 瑞昌市| 友谊县|