軟體構架師

軟體構架師

軟體構架師是在分析設計階段根據系統的主要功能和特性對軟體總體藍圖做出規劃的開發人員。

目錄

正文


什麼是軟體構架師?構架師是在分析設計階段根據系統的主要功能和特性對軟體總體藍圖做出規劃的開發人員。請注意,這是一件風險很大的工作,設計出的構架要能夠容納主要的功能需求,還要有健壯的結構,還要有一定的擴展餘地。這不是一件輕鬆的事,因為軟體是十分精細的,簡單的說,軟體的開發過程就是不斷給出邏輯判斷的過程,這樣的邏輯判斷稱為斷言,當一個軟體設計完畢,成千上萬個斷言就被建立起來,它們是隱含在程序和數據中的,一眼看上去,很難發現。如果存在自相矛盾的斷言,那麼這個軟體系統的某些功能就肯定有問題。
很遺憾,恐怕沒有一個軟體不含有這樣自相矛盾的斷言。構架師的任務就是在設計構架時,盡量減少引入或者誘導產生自相矛盾的斷言,才能最終保證軟體質量,減少開發成本。構架設計就有點像下圍棋開局的時候,憑經驗判定該下哪幾步,但這卻是關係到成敗的關鍵步驟。
所以,訓練構架師是很難的,經驗很重要,這需要長時間的實踐。只是看看那幾本關於軟體構架的書,學習到一些風格、模式這類的東西是遠遠不夠的!
關於更加有效的訓練構架師,我可以提供以下建議:
1、加強數理邏輯知識,掌握公理語義,能夠通過邏輯演算找出構架的問題。
2、注重專業化,不要指望一個構架師什麼類型的軟體都能搞,既然主要靠經驗,就要專業化。
3、學習開發案例,找到以前的設計文檔來分析問題。從需求-〉構架-〉詳細設計,一層一層找問題,從四個方面:(1)主要找別人的問題,要求構架師在盡量短的時間內發現別人的構架問題。(2)構架是否簡單、易於理解?記住科學家說過“正確的必簡單”。給出任意一個需求,構架師能不能找到相應的模塊,還能改進嗎?(3)構架容易擴展嗎?在這個構架上增加一個合理的需求,引起的變更範圍是哪些?能改進使變更範圍縮小嗎?(4)構架的其他方面——健壯性、穩定性、高可用性、負載均衡等等。