在互聯(lián)網(wǎng)圈,對于工作多年的程序員而言,日后的職業(yè)發(fā)展無非是繼續(xù)專精技術(shù)、轉(zhuǎn)型管理和晉升架構(gòu)師三種選擇。
更多的人選擇成為架構(gòu)師,不管是架構(gòu)師的薪資還是架構(gòu)師給自己帶來的成就感,同樣是擼代碼,你與架構(gòu)師不可逾越的鴻溝在哪里呢?
首先何為架構(gòu)師?架構(gòu)師英文architect,這個詞源于建筑學(xué)。軟件工程當中的架構(gòu)師和建筑工程當中建筑師有許多相通之處,都是負責(zé)“產(chǎn)品”宏觀的架構(gòu)設(shè)計。
接下來直接進入正題!架構(gòu)師應(yīng)具備的基本職業(yè)技能及素養(yǎng):
一、經(jīng)驗
優(yōu)秀架構(gòu)師共同點:都是通過不斷的歷練經(jīng)過時間的磨練逐漸發(fā)展成為架構(gòu)師的。當你擁有站在局外看代碼的能力,從而理解特定軟件系統(tǒng)背后的設(shè)計決策。從多個不同抽象層面理解軟件系統(tǒng),這是架構(gòu)師必須掌握的核心技能。
二、技術(shù)
1、了解相關(guān)領(lǐng)域的技術(shù)知識
在你想要成為架構(gòu)師的相關(guān)技術(shù)領(lǐng)域,必須具備扎實的專業(yè)知識和過人的本領(lǐng)。
2、超強的分析、設(shè)計能力
不管怎樣,具備很強的分析和設(shè)計能力都是必殺技。另外就是能夠運用設(shè)計模式方式解決各種各樣的問題。
3、編碼與驗證性測試(POC)
熟悉該組織整個技術(shù)棧,并能使用各層的技術(shù)熟練地編碼。能快速實現(xiàn)驗證性測試。
4、架構(gòu)設(shè)計的實力
能為原始需求提供架構(gòu)方案。考慮周全:工具和框架的采用、安全性、性能和擴展性、依賴關(guān)系、集成、效益。熟悉軟件開發(fā)生命周期(SDLC):需求、分析、設(shè)計、測試、打包、部署。
5、建模語言或工具
能使用不同的建模語言或工具,向其他架構(gòu)師、開發(fā)者、項目經(jīng)理等人,闡述架構(gòu)。
6、架構(gòu)框架
能證明架構(gòu)的可行性,包括其業(yè)務(wù)、應(yīng)用、數(shù)據(jù)、基礎(chǔ)設(shè)置方面。了解TOGAF和ZACHMAN框架就更好了。
三、思維高度
如果你認為懂技術(shù)就可以成為一名架構(gòu)師,那就是大錯特錯了,想要成為一名優(yōu)秀的架構(gòu)師,那你一定還要具備:
1、溝通能力
能與開發(fā)人員、測試人員、商業(yè)分析師、上級經(jīng)理溝通無阻,無論在口頭上和書面上。
2、培訓(xùn)能力
(1)能講解該行業(yè)的市場、技術(shù)知識。
(2)能為全隊提供培訓(xùn)課程。
3、銷售能力
能參與售前工作(尤其對于軟件服務(wù)業(yè)):制定技術(shù)方案、使用各種預(yù)算工具估計方案的規(guī)模和成本、與銷售對象互動。
4、演講技巧
優(yōu)秀的演講技巧,有助于以下活動:華麗的計劃書和技術(shù)文檔、PPT演講、布道。
總結(jié)下來就是:
1、架構(gòu)師需要理解最重要的架構(gòu)驅(qū)動力是什么,他提供的設(shè)計需要考慮這些因素。
2、架構(gòu)師要控制技術(shù)風(fēng)險,在需要的時候積極演化架構(gòu),并且負責(zé)技術(shù)質(zhì)量保證。
3、架構(gòu)師需要把控全局,技術(shù)乃至團隊。
綜上所述你與架構(gòu)師不可逾越的鴻溝就是:領(lǐng)導(dǎo)力
在一個團隊里,架構(gòu)師充當了技術(shù)Leader的角色,不僅要完成項目的整體設(shè)計和規(guī)劃,還要帶領(lǐng)技術(shù)團隊一起解決實際問題,攻克技術(shù)難點,使得軟件的設(shè)計、開發(fā)、測試、發(fā)布流程得以順利完成。
不想成為架構(gòu)師的程序員不是好程序員,其實架構(gòu)師定義是模棱兩可的,那些7、8年程序員也算不上架構(gòu)師,大家都是在學(xué)習(xí)的過程中,在一個陌生的領(lǐng)域,沒有人從一開始就是大神。如果你想變得越來越好,無論是寫代碼,與人溝通或者其它的技能,都是需要投入時間去學(xué)習(xí)的。