- 相關(guān)推薦
系統(tǒng)架構(gòu)師要什么條件
系統(tǒng)架構(gòu)師在軟件開發(fā)的活動(dòng)中起到了綱領(lǐng)性的作用,就像建筑設(shè)計(jì)師一樣,從大的方向來給軟件定一個(gè)基調(diào)。軟件開發(fā)中碰到的很多問題,歸咎起來都可能和當(dāng)初的架構(gòu)設(shè)計(jì)有關(guān),所以架構(gòu)師要想不成為眾矢之的,也不是容易的事情。那么要什么條件才能成為系統(tǒng)架構(gòu)師呢?
1、完成此應(yīng)用程序的基本功能。
如果這是一個(gè)通信程序客戶端,那么它至少應(yīng)該完成客戶端所具有的功能,通過所有的測試用例。不同的功能是需要不同的組成架構(gòu)的,從降低復(fù)雜度和提高可維護(hù)性的角度來考慮對系統(tǒng)進(jìn)行解構(gòu),往往是最直觀的做法。
2、健壯性。
這個(gè)程序不應(yīng)該輕易的crash,如果是界面程序,在面對異常情況的時(shí)候采取柔和的方式來通知用戶。如果是被別的程序所使用的庫,保持健壯性更是非常重要。作為架構(gòu)師,應(yīng)該采取一定的措施來保證模塊的正確工作,至少應(yīng)該保證在出錯(cuò)的情況下能夠比較容易的區(qū)分是否是本模塊造成的。也許有人說這是design和program的事情,但是架構(gòu)師如果不在綱領(lǐng)上制定策略和要求,實(shí)現(xiàn)上也是很難操作的。
3、低的資源消耗。
很多軟件架構(gòu),在架構(gòu)文檔里看時(shí)非常華麗,用了很多模式,一個(gè)普通的應(yīng)用要拆分成多個(gè)進(jìn)程,再用MVC分離各個(gè)模塊,加上一大堆監(jiān)聽適配器過濾器等,可以說模式是能帶來一些好處的,但是往往代價(jià)是更多的資源消耗,內(nèi)存占的多了,性能下降了,邏輯變得更復(fù)雜了。作為架構(gòu)師一定要權(quán)衡,而不是為了表達(dá)自己的知識能力。最好的情況是,能夠給出在各種usecase下模塊或應(yīng)用對資源的消耗程度,比如會占用多少內(nèi)存,某個(gè)接口需要多長時(shí)間等。因?yàn)楝F(xiàn)在的接口定義一般都只是定義使用方式,包括函數(shù)名和參數(shù)列表,至于使用時(shí)的代價(jià)由于沒有說明,往往成為模塊使用者和提供者之間爭論的焦點(diǎn)。
從程序員的角度來講,可維護(hù)性往往更為重要,因?yàn)榫S護(hù)的階段比開發(fā)的階段更長,面對的壓力也更大,而且由于各種各樣的原因,經(jīng)常要一個(gè)新手來維護(hù)這個(gè)程序,如何讓新手很容易的理解它并且馬上具備解決問題的能力,對架構(gòu)師來說也不是一件可以推卸的責(zé)任,采用常見的設(shè)計(jì)模式,制定或采用通用的代碼風(fēng)格,完善相關(guān)的文檔等等,都是好的practice。
對于那些高層次的架構(gòu)師來說,因?yàn)槊鎸Φ氖怯珊芏嗄K應(yīng)用組成的系統(tǒng),他所要處理的實(shí)際上如何協(xié)調(diào)各模塊關(guān)系,保證整個(gè)系統(tǒng)的功能性能和穩(wěn)定性,至少他應(yīng)該了解各個(gè)應(yīng)用所具備的功能,基于此來制定各個(gè)模塊之間的接口。在必要的時(shí)候,要去掉那些作用不大但影響整個(gè)系統(tǒng)性能和穩(wěn)定性的模塊,對各個(gè)模塊的可選功能也要做一定的限制,不能允許其無限制的膨脹。架構(gòu)師也往往面臨著選擇既有實(shí)現(xiàn)的困境,采用第三方或者開源實(shí)現(xiàn)時(shí),一定要和已有的實(shí)現(xiàn)進(jìn)行全方位的比較,在很難做出決定時(shí)寧可保持不變,或者采用小的實(shí)驗(yàn)步驟來獲取真實(shí)的數(shù)據(jù)。
【系統(tǒng)架構(gòu)師要什么條件】相關(guān)文章:
如何成為優(yōu)秀的系統(tǒng)架構(gòu)師06-03
系統(tǒng)架構(gòu)師的就業(yè)前景分析01-11
上市需要什么條件-上市條件01-22
法國留學(xué)要什么條件07-09
韓國留學(xué)需要什么條件07-27
日本留學(xué)需要什么條件09-16