更新時(shí)間:2019-09-27 10:23:40 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2391次
國(guó)內(nèi)我們對(duì)架構(gòu)師,項(xiàng)目經(jīng)理,開發(fā)經(jīng)理或者是技術(shù)總監(jiān)這類職業(yè)定位普遍不都不清晰,很多的情況是“能者多勞”,一人身兼數(shù)職。達(dá)爾文的理論在我們的行業(yè)是絕對(duì)適用的,我從進(jìn)入這個(gè)行業(yè)開始我就不甘于成為淘汰者,而我也由心地?zé)釔壑@個(gè)行業(yè)很年前我就立志要成為架構(gòu)師(當(dāng)年流行叫:系統(tǒng)分析員)這目標(biāo)進(jìn)發(fā)。回首這10幾年的磨練,我總結(jié)了一下一名合格的架構(gòu)師應(yīng)該具備哪一些方面的能力以及怎么才能得到這些能力
編碼能力
架構(gòu)師是一個(gè)職業(yè),是一種經(jīng)歷了各種磨練與長(zhǎng)年開發(fā)經(jīng)驗(yàn)積累出來的。另外我一直認(rèn)為:不會(huì)編碼的架構(gòu)師不是一個(gè)好的架構(gòu)師。我見過很多所謂的架構(gòu)師完全不懂編碼,但總喜歡拿著架構(gòu)說事。但從嚴(yán)格來說他們并不屬于“軟件架構(gòu)師”的范疇,充其量只能算是個(gè)“系統(tǒng)架構(gòu)設(shè)計(jì)師”,遇到這樣的”架構(gòu)師“我總喜歡說一句話:”Don’ttellmetheconceptsshowmethecode!“。
不參與編碼并不代表不會(huì)編碼,如果沒有過硬的開發(fā)基礎(chǔ),巨量的編碼時(shí)間積累為基礎(chǔ),在設(shè)計(jì)軟件時(shí)一定會(huì)忽略非常多的細(xì)節(jié),而這將會(huì)直接影響到整個(gè)項(xiàng)目的成敗,試想想當(dāng)項(xiàng)目經(jīng)理按照架構(gòu)師設(shè)計(jì)的軟件藍(lán)圖訂制開發(fā)計(jì)劃與安排項(xiàng)目資源時(shí)由于“藍(lán)圖”內(nèi)存有大量未確定的風(fēng)險(xiǎn)因素,以及由風(fēng)險(xiǎn)觸發(fā)后所帶來的不可預(yù)知的結(jié)果,最后項(xiàng)目是否能成功?
多看-多看別人的代碼,從別人的代碼中讀出軟件的架構(gòu)與設(shè)計(jì)的設(shè)計(jì)思路
多學(xué)-掌握各種語言,不要偏執(zhí)于某一技術(shù)陣形,不管java,.net,phyon還是javascript每種語言都有其優(yōu)缺點(diǎn),成為一名語言控,從語言本身學(xué)習(xí)與理解語言設(shè)計(jì)者的思想。
多做-瘋狂編碼,從時(shí)間與實(shí)踐中去體驗(yàn)與領(lǐng)悟,工多藝熟。
勇敢-嚴(yán)格要求自己不要寫出”發(fā)臭“的東西,勇敢地重構(gòu)!讓代碼變得優(yōu)雅,易讀充滿你的設(shè)計(jì)思想。
架構(gòu)師需要具備哪些技能需要更多的去了解:
表達(dá)力
世界上最難的兩件事是:將別人口袋的錢放到自己的口袋里面;將自己腦子的想法完整放到別人的腦子里面。
我認(rèn)為一份成功的設(shè)計(jì)是”能讓不同層面的人都能看得懂“。為什么這樣說?那么得了解誰需要看設(shè)計(jì),又是出于何目的來看設(shè)計(jì)。
銷售-從設(shè)計(jì)中尋找賣點(diǎn)與特色,豐富銷售方案和定制預(yù)售計(jì)劃。
項(xiàng)目經(jīng)理-根據(jù)設(shè)計(jì)進(jìn)行時(shí)間估算、項(xiàng)目資源準(zhǔn)備與工作分解。
開發(fā)-根據(jù)設(shè)計(jì)要求進(jìn)行技術(shù)準(zhǔn)備、開發(fā)環(huán)境、編寫DEMO以及最終編碼。
測(cè)試-根據(jù)設(shè)計(jì)劃分測(cè)試粒度、準(zhǔn)備測(cè)試環(huán)境、定制測(cè)試計(jì)劃
不同的開發(fā)方法與開發(fā)流程都會(huì)有不同的設(shè)計(jì)文檔要求,而受眾無非也是上述幾種。作為項(xiàng)目/軟件的設(shè)計(jì)者,能清晰地向受眾準(zhǔn)確地傳達(dá)自己的設(shè)計(jì)思路就顯得極其重要。這里指表達(dá)不是指嘴上的功底,更多的是在工具的掌握能力與文字的表達(dá)能力。使用不同的工具表達(dá)向不同的受從表達(dá)相同的理念,這基實(shí)是對(duì)架構(gòu)設(shè)計(jì)的一種驗(yàn)證,這種溝通與表達(dá)能有效地融合不同角度的觀點(diǎn),也能讓架構(gòu)師能更深入地理解自己的設(shè)計(jì)方向。
要面對(duì)如此多的復(fù)雜性應(yīng)該如何來鍛煉自己的表達(dá)性呢?
多與人溝通,多參與頭腦風(fēng)暴
練習(xí)用人類語言表達(dá)“非人類”的專業(yè)知識(shí)。一張用鉛筆畫的框圖往往比一個(gè)使用專業(yè)UML設(shè)計(jì)工具做出來的設(shè)計(jì)更容易讓人理解。UML為作架構(gòu)師基本上是必修課,也是輔助架構(gòu)師思維的工具,但對(duì)于不懂UML的那就是“非人類”的文檔,設(shè)計(jì)是給人看的,別人看不懂再專業(yè)再標(biāo)準(zhǔn)化的設(shè)計(jì)也只能淪為廢紙。
培養(yǎng)測(cè)試先行的習(xí)慣-在設(shè)計(jì)時(shí)多寫范例與測(cè)試,在很大程度上可以減少設(shè)計(jì)誤區(qū)和驗(yàn)證被實(shí)現(xiàn)的可行性。這樣可以在將設(shè)計(jì)交付給開發(fā)、測(cè)試后節(jié)約大量的溝通時(shí)間。
擁抱變化
正如XP(極端編程)中所說:“世界上唯一不變的就是變化”。擁抱變化、預(yù)測(cè)變化、控制變化不單純是優(yōu)秀開發(fā)人員的和項(xiàng)目經(jīng)理的要求同樣也是架構(gòu)師一種重要的能力。
“變”
我的理解設(shè)計(jì)中的“變”就是“可定制化”的要求,可定制化程度越高系統(tǒng)/項(xiàng)目的可擴(kuò)展性就越強(qiáng)。架構(gòu)師就是需要鍛煉的是控制這種變化的范圍與程度,“變”是雙刃劍,允許過多的變化就會(huì)造成“過度設(shè)計(jì)”,出現(xiàn)一大堆“未來可能使用的功能”;過于封閉則會(huì)變得僵化難以適應(yīng)新的要求。
“不變”
這里所說的“不變”也只是相對(duì)而然,在系統(tǒng)/項(xiàng)目中相對(duì)不變的就應(yīng)該是“核心”或者是“基礎(chǔ)框架”,舉最簡(jiǎn)單的例子就是.netframework就是其中一者,雖然它會(huì)不斷發(fā)展,增強(qiáng)功能。但其基礎(chǔ)核心設(shè)計(jì)理念與架構(gòu)也從來沒有發(fā)生過質(zhì)的改變。更具體的一點(diǎn)來說“不變”的是規(guī)則、用法和基礎(chǔ)設(shè)計(jì)理念。
我認(rèn)為學(xué)習(xí)控制變化的最佳方法是多看出色的類庫(kù)或系統(tǒng),多問為什么這樣做,理解原設(shè)計(jì)師的想法。經(jīng)過一定時(shí)間的積累,隨著對(duì)“變化”觀察的增多,自然而然會(huì)在自已的設(shè)計(jì)中按設(shè)計(jì)要求將”變“與”不變“應(yīng)用得當(dāng)。
**方法論**
針對(duì)架構(gòu)設(shè)計(jì)的方法論眾多,應(yīng)該如何選擇?我也讀過很多的相關(guān)書籍,我只選最實(shí)用的,這里我推薦幾本書。
《設(shè)計(jì)模式》-要讀懂、活用,我讀了10幾年每次都可以從中學(xué)到不一樣的想法,將其應(yīng)用于架構(gòu)內(nèi)可以極大地簡(jiǎn)化很多復(fù)雜的問題。
《Java編程思想》-談面向?qū)ο蠓矫孀詈玫钠渲幸槐緯岣呙嫦驅(qū)ο蟮脑O(shè)計(jì)能力會(huì)有很大幫助
《Refactoring》-重構(gòu)不單單是一種做法和程序員才關(guān)心的事。重構(gòu)重于意識(shí)與思維完全可以用于架構(gòu)設(shè)計(jì)。
《eXtremeProgramming》-雖然討論的是開發(fā)方法,但它最能詮釋什么是”變化“。
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編介紹的“Java程序員進(jìn)階架構(gòu)師究竟要具備哪些能力”的內(nèi)容,希望對(duì)大家有幫助,更多java最新資訊請(qǐng)繼續(xù)關(guān)注動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)官網(wǎng),每天會(huì)有精彩內(nèi)容分享與你。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743