linugb118--java space

          Java

          高煥堂老師的軟件架構的講座

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

          posted on 2010-01-28 14:29 linugb118 閱讀(3024) 評論(4)  編輯  收藏

          Feedback

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



          來學習了!  回復  更多評論   

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

          3.如果把軟件生產比作工廠,請問軟件工廠的原料是什么? 是需求? 如果回答是需求,那就錯了。
          需求和架構沒有關系。需求是桌面,架構是桌腳,桌腳的要幾個,什么形狀和桌面沒有關系,只要桌腳能支持
          桌面就行了。

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

          強烈反對這個說法?。。?!  回復  更多評論   

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

          大部分都很有道理  回復  更多評論   

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

          同學:請問如果現在是一個自行車工廠,他需要生產自行車,請問生產自行車的原料是什么? 是需求嗎? 顯然不是。軟件和實體的區別在于不可實體化,所有往往很多實體類似的東西,到軟件這邊就忽視掉了
          @qd
            回復  更多評論   



          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 泸水县| 湖州市| 四子王旗| 岢岚县| 广西| 辉县市| 江油市| 镇沅| 平安县| 曲松县| 汉源县| 沙洋县| 安泽县| 于田县| 团风县| 莒南县| 南平市| 南宫市| 靖州| 新干县| 岢岚县| 临颍县| 延寿县| 靖西县| 二连浩特市| 错那县| 东乌珠穆沁旗| 彭阳县| 栾城县| 深圳市| 石林| 西和县| 怀仁县| 山阴县| 绥化市| 宝应县| 缙云县| 阿巴嘎旗| 杭州市| 吴桥县| 平利县|