更新時(shí)間:2019-12-24 10:50:53 來源:動(dòng)力節(jié)點(diǎn) 瀏覽3365次
主要是管理與技術(shù)兩方面的能力,管理與技術(shù)兩手都要硬,而技術(shù)是基礎(chǔ)。技術(shù)不行、退化了,那只好做 PPT 架構(gòu)師、首席布道師之類的。

技術(shù)能力
軟件架構(gòu)師是一位具有一定技術(shù)、產(chǎn)品、項(xiàng)目和團(tuán)隊(duì)等管理能力的高級(jí)程序員(編程高手),通常是一個(gè)開發(fā)團(tuán)隊(duì)里面技術(shù)最牛(或者比較牛)的少數(shù)幾個(gè)人之一。架構(gòu)師自身的技術(shù)水平和管理水平不行,常常會(huì)把團(tuán)隊(duì)帶溝里,重要性可想而知。
成為架構(gòu)師需要較長時(shí)間的一線開發(fā)經(jīng)驗(yàn)的積累。單純看工作年限,一般 3-5 年可成為初級(jí)架構(gòu)師,5-8 年可成為中級(jí)架構(gòu)師,8-10 年以上可成為高級(jí)軟件架構(gòu)師,當(dāng)然這只是大致的估計(jì),具體達(dá)到何種水平還要看架構(gòu)師的實(shí)際能力。
經(jīng)年累月,摸爬滾打,一位優(yōu)秀的軟件架構(gòu)師需要掌握的技術(shù)能力很多,先說幾個(gè)最基本的。
建模
軟件開發(fā)領(lǐng)域的建模能力,主要是指抽象的思考能力。
普通碼農(nóng)通常用代碼思考,負(fù)責(zé)一個(gè)系統(tǒng)中的幾個(gè)小模塊,所以思維常常局限在低層(low-level)、戰(zhàn)術(shù)(tactic)的層面,考慮的基本上大多是某個(gè)功能、某個(gè)模塊實(shí)現(xiàn)的具體細(xì)節(jié)與技巧。這是應(yīng)該而且正常的,是團(tuán)隊(duì)合理分工的結(jié)果。
而架構(gòu)師,顧名思義,要負(fù)責(zé)整個(gè)系統(tǒng)的架構(gòu),尤其是涉及到一個(gè)系統(tǒng)(或子系統(tǒng))全局的整體設(shè)計(jì),所以往往需要高層、上層(high-level)的戰(zhàn)略(strategic)層面的思考,這樣就必然需要架構(gòu)師經(jīng)常進(jìn)行建模(Modeling),對(duì)代碼、模塊、子系統(tǒng)和系統(tǒng)中的各種靜態(tài)結(jié)構(gòu)、關(guān)系和動(dòng)態(tài)行為、交互等等進(jìn)行抽象。所以,在架構(gòu)師的日常工作中,經(jīng)常看到各種各樣的圖表、圖形符號(hào)和模型,是很正常的。
可以說,不會(huì)建模,不習(xí)慣于用模型思考的程序員,是很難成為一名稱職的軟件架構(gòu)師的。
系統(tǒng)分析與設(shè)計(jì)
前面已經(jīng)說了,系統(tǒng)分析與設(shè)計(jì)(System Analysis and Design)的主要技術(shù)手段是建模,兩者是高度重合的。
編程的四門功課

上圖畫的是任何軟件開發(fā)、軟件工程必然離不開的四門基本功課(四項(xiàng)基本活動(dòng)或任務(wù)):
1、需求分析
2、設(shè)計(jì)實(shí)現(xiàn)
3、測(cè)試驗(yàn)證
4、調(diào)試糾錯(cuò)
把這四項(xiàng)活動(dòng)連起來正好組成一個(gè)菱形,所以我也把它們叫作“編程之鉆”(The Programming Diamond)。
這四門功課既可以看作是一個(gè)團(tuán)隊(duì)在整個(gè)項(xiàng)目開發(fā)過程中所連續(xù)從事的必不可少的四項(xiàng)基本活動(dòng)(團(tuán)隊(duì)層面),也可以看作是一名程序員在日常開發(fā)中為了實(shí)現(xiàn)一個(gè)需求而需要完成的必不可少的四項(xiàng)基本任務(wù)(個(gè)體層面)。
從一個(gè)功能的需求分析,到程序設(shè)計(jì)、編碼實(shí)現(xiàn),再到測(cè)試確認(rèn)這個(gè)功能的完成,以及發(fā)現(xiàn)錯(cuò)誤后進(jìn)行調(diào)試定位、代碼修改、設(shè)計(jì)重構(gòu)或優(yōu)化,再次進(jìn)行測(cè)試和確認(rèn),通過后再選擇下一個(gè)需求進(jìn)行分析,如此周而復(fù)始。。。這四個(gè)基本動(dòng)作正好構(gòu)成一個(gè)功能開發(fā)的小循環(huán),也是每個(gè)程序員日常工作的標(biāo)準(zhǔn)核心動(dòng)作。
那么,為什么普通碼農(nóng)的開發(fā)不如編程高手,總是比別人慢,往往也不如別人的好?可能有許多種原因。有一個(gè)比較簡單的辦法能幫你找到開發(fā)的瓶頸:評(píng)估一下以上這四項(xiàng)任務(wù)在你的日常開發(fā)中的時(shí)間占比。
國內(nèi)許多碼農(nóng)的開發(fā)效率低、質(zhì)量不高,是因?yàn)樗麄兺?Coding、Debugging 上花去了大量時(shí)間(人稱 code-and-fix),而在“編程之鉆”的需求分析、自動(dòng)測(cè)試、架構(gòu)設(shè)計(jì)等其他幾個(gè)重要方面往往草草帶過,占比明顯不平衡。
什么原因?因?yàn)樵S多人不知道怎么有效率、高質(zhì)量地去做需求分析、自動(dòng)測(cè)試、架構(gòu)設(shè)計(jì)以及調(diào)試除錯(cuò),以為只有 Coding(編程語言的語法技巧和框架 API 如何使用等)最重要,忽視了其他的軟件工程關(guān)鍵實(shí)踐,于是導(dǎo)致個(gè)人整體的開發(fā)速度和質(zhì)量降低,老是提不上去。
而這又是什么原因造成的?因?yàn)橐环矫?ldquo;軟件工程無用論”長期存在,加上浮躁和急功近利的社會(huì)風(fēng)氣,影響了人們的觀念和意識(shí),導(dǎo)致追求短平快、糙快猛;而另一方面僅通過大學(xué)短短的四年,常常很難全面、扎實(shí)地學(xué)到并掌握“編程之鉆”的關(guān)鍵技術(shù),而工作以后又常常忙于加班應(yīng)付、各種趕工期,缺少足夠的時(shí)間來學(xué)習(xí)提高自己的開發(fā)水平。

以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java軟件架構(gòu)師具備哪些能力”的內(nèi)容,希望對(duì)大家有幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)內(nèi)容
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)