架構(gòu)是什么,就是撐起這些要求的關(guān)鍵構(gòu)件。它于人就像脊梁、于房子就像大梁、于船只就像龍骨,銜接關(guān)鍵組件,讓一切各司其職,讓一切協(xié)作,讓一切簡單。
廣義的架構(gòu)師當(dāng)中分兩種。其實(shí)包括架構(gòu)人員,和工程人員,也就是所謂的架構(gòu)師和首席工程師。狹義的架構(gòu)師一般是不寫代碼的,我們所見的架構(gòu)師寫核心代碼,其實(shí)是因?yàn)樵趯?shí)際工作當(dāng)中,一般架構(gòu)師還會兼任首席工程師。
架構(gòu)師是整個軟件工程和軟件生命周期里面相當(dāng)重要的一個角色,介于軟件需求和開發(fā)之間的一個承上啟下的關(guān)鍵角色,即能夠?qū)崿F(xiàn)業(yè)務(wù)需求和場景到最終軟件實(shí)現(xiàn)的第一次高度抽象建模。在更早的階段一般會談系統(tǒng)分析員角色,那么這個角色往往會同時兼顧軟件需求和軟件架構(gòu)的工作。
架構(gòu)師需要考慮4個問題
1. 確定系統(tǒng)干什么不干什么,也就是說系統(tǒng)的邊界在哪里?
2. 確定架構(gòu)內(nèi)部的模塊與模塊之間的關(guān)系,以及模塊與外部之間的關(guān)系是什么?
3. 架構(gòu)確定以后,有能力去指導(dǎo)開發(fā)去繼續(xù)設(shè)計和演化,如果開發(fā)設(shè)計和演化出來的東西和架構(gòu)不一致也是有問題的。
4. 確定非功能性需求,安全性,可擴(kuò)展性,可用性,可維護(hù)性。
架構(gòu)師的綜合能力
程序員從初級、中級、高級再到架構(gòu)師,是一個不斷經(jīng)驗(yàn)積累的過程,除了技術(shù)實(shí)力以外,其它軟實(shí)力也不容忽視。
溝通能力
架構(gòu)師參與項(xiàng)目開發(fā)的全過程,包括確認(rèn)需求、系統(tǒng)分解、架構(gòu)設(shè)計、技術(shù)選型、制定技術(shù)規(guī)格說明、系統(tǒng)實(shí)現(xiàn)、集成測試和部署各階段,與相關(guān)部門、技術(shù)團(tuán)隊(duì)關(guān)于各個環(huán)節(jié)的工作溝通在所難免,這就決定了架構(gòu)師需要具備較強(qiáng)的溝通能力。
技術(shù)能力
眾所周知,架構(gòu)師是團(tuán)隊(duì)中的技術(shù)權(quán)威,需要同時具備技術(shù)的深度和廣度,至少精通1-2門技術(shù),且技術(shù)廣度的要求高于技術(shù)深度的要求,這樣才能更加深入的理解架構(gòu)相關(guān)工作原理,也可以拉近和技術(shù)團(tuán)隊(duì)的距離,并形成影響力。
最后,一個好的架構(gòu)設(shè)計,不管是在人力、技術(shù)、運(yùn)維、實(shí)施上都可以大大減少公司成本,這不是一個普通的開發(fā)可以有的認(rèn)知。
更多科技一手咨詢,歡迎關(guān)注!
聯(lián)系客服