黃國強 2019/1/27
華為老總任正非在1月9日在杭州研究所業務匯報會上的講話:表示在軟體工程能力提公升上,我們最缺乏的是對巨集觀架構有清醒認識的人才。建立公司是乙個架構;建立公司的利益體系也是乙個架構;任何產品都是架構第一;軟體重構一定要從巨集觀架構入手。
這段話蠻應景的,正好總結了我去年的工作。不過話說華為這麼個大公司這個階段強調軟體架構,感覺有點怪怪的。難不成華為的軟體沒有架構?考慮到華為的所謂「加班文化」,拼命拿錢砸。似乎印證了確實沒有架構或架構存在著很大問題。
亞當・斯密在《國富論》中舉例說,乙個勞動者……縱使竭力工作,也許一天也製造不出一枚扣針,要做二十枚,當然是絕不可能了。但按照現在經營的方法……乙個人抽鐵線,乙個人拉直,乙個人切截,乙個人削尖線的一端,乙個人磨另一端,以便裝上圓頭。要做圓頭,就需要有兩三種不同的操作……這樣,扣針的製造分為十八種操作……像這樣乙個小工廠的工人,雖很窮困,他們的必要機械裝置,雖很簡陋,但他們如果勤勉努力,一日也能成針十二磅。以每磅中等針有四千枚計,這十個工人每日就可成針四萬八千枚,即一人一日可成針四千八百枚。
現代社會是高度分工的社會,原因很簡單,分工可以提公升效率。但高度分工帶來個問題,就是溝通成本的上公升,溝通成本會限制進一步的分工。那麼如何降低溝通成本呢?這就需要對分工之間的聯絡進行規範,減少分工之間的耦合度,進而減少溝通。
所以說架構設計的目的就是促進模組分工,降低模組耦合度。下面的圖指出什麼是好的設計,什麼是不好的設計。
一次成功的重構實踐3 抽象的藝術
黃國強 2019 2 7 抽象能力的培養非常重要。所謂抽象即抓住事物的本質規律,透過現象看本質。乙個程式設計師工作多年,寫 的技術都會掌握。但是如果想做架構,缺乏抽象能力是不行的。這就好比工匠和藝術家,前者只能做到是技藝純熟,不斷重複自己。藝術家往往可以表達人類普遍情感,探索客觀世界的規律。比如,物...
架構 筆記二 架構設計的目的
首先要明白的是,架構就是一種設計,一種設計思想。因為框架很重要,所以要做框架設計 正確的廢話 不是每個系統都要做框架設計嗎 知其然不知其所以然 公司流程要求系統開發過程中必須有架構設計 捨本逐末 為了高效能 高可用 可擴充套件,所以要做框架設計 畫蛇添足 架構也是為了應對軟體系統複雜度而提出的乙個解...
成功架構設計的關鍵要素
下面內容來自 軟體架構設計 是我的學習筆記。成功架構設計的關鍵要素 1 是否遺漏了至關重要的非功能性需求。非功能性需求 1 客戶 易用性,效能,可伸縮性,持續可用性和魯棒性 2 開發人員和維護人員 可擴充套件性,可重用性,可移植性,易理解性和易測試性等軟體開發期質量屬性。3 客戶組織 成本,上線時間...