系統架構師要什麼條件
系統架構師在軟件開發的活動中起到了綱領性的作用,就像建築設計師一樣,從大的方向來給軟件定一個基調。軟件開發中碰到的很多問題,歸咎起來都可能和當初的架構設計有關,所以架構師要想不成為眾矢之的,也不是容易的事情。那麼要什麼條件才能成為系統架構師呢?
1、完成此應用程序的基本功能。
如果這是一個通信程序客户端,那麼它至少應該完成客户端所具有的功能,通過所有的測試用例。不同的功能是需要不同的組成架構的,從降低複雜度和提高可維護性的角度來考慮對系統進行解構,往往是最直觀的做法。
2、健壯性。
這個程序不應該輕易的crash,如果是界面程序,在面對異常情況的時候採取柔和的方式來通知用户。如果是被別的程序所使用的庫,保持健壯性更是非常重要。作為架構師,應該採取一定的措施來保證模塊的'正確工作,至少應該保證在出錯的情況下能夠比較容易的區分是否是本模塊造成的。也許有人説這是design和program的事情,但是架構師如果不在綱領上制定策略和要求,實現上也是很難操作的。
3、低的資源消耗。
很多軟件架構,在架構文檔裏看時非常華麗,用了很多模式,一個普通的應用要拆分成多個進程,再用MVC分離各個模塊,加上一大堆監聽適配器過濾器等,可以説模式是能帶來一些好處的,但是往往代價是更多的資源消耗,內存佔的多了,性能下降了,邏輯變得更復雜了。作為架構師一定要權衡,而不是為了表達自己的知識能力。最好的情況是,能夠給出在各種usecase下模塊或應用對資源的消耗程度,比如會佔用多少內存,某個接口需要多長時間等。因為現在的接口定義一般都只是定義使用方式,包括函數名和參數列表,至於使用時的代價由於沒有説明,往往成為模塊使用者和提供者之間爭論的焦點。
從程序員的角度來講,可維護性往往更為重要,因為維護的階段比開發的階段更長,面對的壓力也更大,而且由於各種各樣的原因,經常要一個新手來維護這個程序,如何讓新手很容易的理解它並且馬上具備解決問題的能力,對架構師來説也不是一件可以推卸的責任,採用常見的設計模式,制定或採用通用的代碼風格,完善相關的文檔等等,都是好的practice。
對於那些高層次的架構師來説,因為面對的是由很多模塊應用組成的系統,他所要處理的實際上如何協調各模塊關係,保證整個系統的功能性能和穩定性,至少他應該瞭解各個應用所具備的功能,基於此來制定各個模塊之間的接口。在必要的時候,要去掉那些作用不大但影響整個系統性能和穩定性的模塊,對各個模塊的可選功能也要做一定的限制,不能允許其無限制的膨脹。架構師也往往面臨着選擇既有實現的困境,採用第三方或者開源實現時,一定要和已有的實現進行全方位的比較,在很難做出決定時寧可保持不變,或者採用小的實驗步驟來獲取真實的數據。
-
企業大規模系統整合架構如何選型
在大規模Linux系統整合方面,企業當前可選的架構主要有兩種,一種是集中式架構如LinuxONE,一種是新興的超融合架構,如何選型呢?問題一:超融合架構與如LinuxONE集中式架構的區別是什麼?wangj0923技術經理工行在LinuxONE這種軟硬件高度集成的機器面前,目前所謂的超融合都...
-
什麼是系統架構師-如何成為系統架構師
系統架構師是在某一個技術領域有深刻專研的技術達人?還是在技術面上涉獵廣泛的通才?抑或有個五六年的工作經驗之後就自動變成了架構師?相信下面的文章對你的疑惑有所幫助!新入門或沒有架構設計經驗的程序員剛開始的時候會有種不知所措的感覺,但其實架構設計是件...
-
IoT項目如何選擇正確的軟件架構
你想要創建一個合適的項目,看是要更進一步探索這個想法還是將其產品化。但是,應該從哪種軟件架構入手呢?究竟該採用初始成本較低的開源架構,還是選擇需要支付前期費用的商業解決方案,來加速你的設計過程呢?一起來看看!什麼是軟件架構?在本文件中,將“軟件構架”解釋...
-
架構師必備11大能力要求和培養流程
如何才能成為一名合格的架構師?需要具備什麼樣的能力要求?培養的流程是什麼?YJBYS小編為大家詳解如下!一般來講,系統架構師應該擁有以下幾方面的能力:1:具備8年以上軟件行業工作經驗;2:具備4年以上C/S或B/S體系結構軟件產品開發及架構和設計經驗;3:具備3年以上的代...