一、核心競(jìng)爭(zhēng)力
架構(gòu)設(shè)計(jì)的理論、模式與技術(shù)
架構(gòu)師們從試驗(yàn)與挫折中獲得架構(gòu)設(shè)計(jì)的技能,但其中大量的原理、模式和技巧,都經(jīng)歷了一個(gè)重復(fù)發(fā)現(xiàn)的過(guò)程。
其實(shí),各路神仙在這個(gè)領(lǐng)域雖則沒(méi)有搗鼓出大熱的暢銷書(shū)來(lái),但前篇的架構(gòu)師書(shū)單,也足夠?yàn)槲覀冏饕粋€(gè)系統(tǒng)的知識(shí)整理。
痛苦回首,發(fā)現(xiàn)自己的再發(fā)現(xiàn)式積累還是太慢、太片面,大多局限于GOF23、Java EE架構(gòu)模式、RUP4+1視圖等方面。
有序的以方法為驅(qū)動(dòng)源的任務(wù)執(zhí)行
匠級(jí)的架構(gòu)師多有一套自己的方法論、過(guò)程論,每回設(shè)計(jì)都是熟練而有序的執(zhí)行。
其中架構(gòu)師的小過(guò)程可以參考書(shū)單反復(fù)試驗(yàn),秘制。
而與開(kāi)發(fā)團(tuán)隊(duì)配合的大過(guò)程,以RUP為基礎(chǔ)的剪裁被描述得為詳細(xì),可執(zhí)行度高的。
領(lǐng)域知識(shí)
技術(shù)人員一般抗拒學(xué)習(xí)軟件開(kāi)發(fā)以外的東西,但架構(gòu)師卻非如此不可,因?yàn)榧軜?gòu)師的職責(zé)就是將業(yè)務(wù)需求轉(zhuǎn)化為系統(tǒng)設(shè)計(jì)。那又如何快速成為新領(lǐng)域的專家呢?精通快速業(yè)務(wù)建模嗎? BTW.G9寫(xiě)過(guò)一篇很有意思的〈商業(yè)軟件編程很無(wú)聊?〉
大型項(xiàng)目的經(jīng)驗(yàn)
中國(guó)有多少架構(gòu)師,不在于有多少人通過(guò)了什么考試培訓(xùn),而在于中國(guó)大型項(xiàng)目的數(shù)量。
問(wèn):你這個(gè)項(xiàng)目的架構(gòu)是什么?一口回答:Spring+Struts+Hibernate。這位很可能就不是架構(gòu)師了,因?yàn)檫@僅僅是技術(shù)Stack,項(xiàng)目規(guī)模不大時(shí)Spring+Struts+Hibernate才會(huì)成為架構(gòu)的重點(diǎn)。
除了親自擔(dān)任大型項(xiàng)目的架構(gòu)師,如果了解這些項(xiàng)目為了滿足怎樣的功能與非功能需求而把架構(gòu)設(shè)計(jì)成這樣子也一樣的。所以,盡量多讀一下公司項(xiàng)目的設(shè)計(jì)文檔,愉快的接受其他項(xiàng)目組架構(gòu)評(píng)審會(huì)的邀請(qǐng)。
二、基本能力
完整的軟件開(kāi)發(fā)生命周期經(jīng)驗(yàn)
這個(gè)不用說(shuō)了,幸好中國(guó)的架構(gòu)師什么臟活累活都做過(guò),甚至跟著市場(chǎng)人員跑去做演示這些國(guó)外架構(gòu)師不一定有的經(jīng)驗(yàn)我們都有了,差別只在于一些理論知識(shí)--RUP + CMMI3 + 敏捷原則的細(xì)節(jié)掌握程度。
精通一兩種主流開(kāi)發(fā)語(yǔ)言、保持當(dāng)下架構(gòu)的開(kāi)發(fā)體驗(yàn)
國(guó)內(nèi)的架構(gòu)師到了三十歲以后很多就往理論上跑,而國(guó)外的架構(gòu)師則在往上發(fā)展的同時(shí)保持下面的編程體驗(yàn),所以國(guó)內(nèi)多水王,而國(guó)外則多大師。
水王的設(shè)計(jì)一般會(huì)層次過(guò)高,與實(shí)現(xiàn)之間有斷層,與開(kāi)發(fā)人員溝通困難,自己嘩啦啦編個(gè)驗(yàn)證原型的日子更是一去不返。更痛苦的是,人過(guò)三十之后學(xué)習(xí)能力下降,手藝一旦放下了想重新上手還很難:
但是,也不必要挽起袖子每月編碼若干行,很可能你的"親自出手"因?yàn)闀r(shí)間安排不來(lái)反而拖了大家的進(jìn)度,但一定要保持一個(gè)體驗(yàn)。
宏觀上的,廣度優(yōu)先的了解當(dāng)前主流的技術(shù)與產(chǎn)品
架構(gòu)師如果連Tuxedo與IBM MQ都分不清,一句"這里搞個(gè)異步調(diào)用的middleware,有commercial support的",同樣是層次太高了。架構(gòu)師對(duì)各大公司的完整產(chǎn)品線和的開(kāi)源項(xiàng)目應(yīng)該有宏觀上的了解,好在Wiki里編個(gè)索引。
但同時(shí)也要抵制成為某項(xiàng)技術(shù)專家如Oracle啟動(dòng)參數(shù)優(yōu)化專家的誘惑,技術(shù)細(xì)節(jié)掌握到業(yè)務(wù)職責(zé)需要的程度就剛好了。除非如Spring Framework進(jìn)一步了解能帶來(lái)天大好處。
與業(yè)務(wù)域開(kāi)發(fā)域人員溝通的能力及其他領(lǐng)導(dǎo)能力
IT 架構(gòu)師處在客戶和開(kāi)發(fā)人員之間,必須能夠使用各種媒體(代碼、模型、文檔、PowerPoint以及談話和講座),與技術(shù)和非技術(shù)的干系人進(jìn)行溝通。另外,架構(gòu)師好歹也是個(gè)半大不小的官,其他領(lǐng)導(dǎo)必要的能力就不列了。
參考了IBM DW中國(guó)上的兩篇文章:
《軟件構(gòu)架師的特點(diǎn)》
《觀點(diǎn)與展望,第 3 部分: 什么是有價(jià)值的 IT 體系結(jié)構(gòu)技能,如何學(xué)習(xí)?》
三、鏡子做好了,自己先照一下
要把書(shū)單啃完;
要熟悉NGOSS、3G、IMS這些業(yè)務(wù)知識(shí);
要把公司幾百個(gè)項(xiàng)目的設(shè)計(jì)文檔抽好的看一遍;
要跟隨公司新一波RUP+CMMI3行情;
要重修C++;
要完整了解一遍IBM、BEA們的產(chǎn)品線;
要從那些寫(xiě)得好的架構(gòu)PPT中偷師...
架構(gòu)設(shè)計(jì)的理論、模式與技術(shù)
架構(gòu)師們從試驗(yàn)與挫折中獲得架構(gòu)設(shè)計(jì)的技能,但其中大量的原理、模式和技巧,都經(jīng)歷了一個(gè)重復(fù)發(fā)現(xiàn)的過(guò)程。
其實(shí),各路神仙在這個(gè)領(lǐng)域雖則沒(méi)有搗鼓出大熱的暢銷書(shū)來(lái),但前篇的架構(gòu)師書(shū)單,也足夠?yàn)槲覀冏饕粋€(gè)系統(tǒng)的知識(shí)整理。
痛苦回首,發(fā)現(xiàn)自己的再發(fā)現(xiàn)式積累還是太慢、太片面,大多局限于GOF23、Java EE架構(gòu)模式、RUP4+1視圖等方面。
有序的以方法為驅(qū)動(dòng)源的任務(wù)執(zhí)行
匠級(jí)的架構(gòu)師多有一套自己的方法論、過(guò)程論,每回設(shè)計(jì)都是熟練而有序的執(zhí)行。
其中架構(gòu)師的小過(guò)程可以參考書(shū)單反復(fù)試驗(yàn),秘制。
而與開(kāi)發(fā)團(tuán)隊(duì)配合的大過(guò)程,以RUP為基礎(chǔ)的剪裁被描述得為詳細(xì),可執(zhí)行度高的。
領(lǐng)域知識(shí)
技術(shù)人員一般抗拒學(xué)習(xí)軟件開(kāi)發(fā)以外的東西,但架構(gòu)師卻非如此不可,因?yàn)榧軜?gòu)師的職責(zé)就是將業(yè)務(wù)需求轉(zhuǎn)化為系統(tǒng)設(shè)計(jì)。那又如何快速成為新領(lǐng)域的專家呢?精通快速業(yè)務(wù)建模嗎? BTW.G9寫(xiě)過(guò)一篇很有意思的〈商業(yè)軟件編程很無(wú)聊?〉
大型項(xiàng)目的經(jīng)驗(yàn)
中國(guó)有多少架構(gòu)師,不在于有多少人通過(guò)了什么考試培訓(xùn),而在于中國(guó)大型項(xiàng)目的數(shù)量。
問(wèn):你這個(gè)項(xiàng)目的架構(gòu)是什么?一口回答:Spring+Struts+Hibernate。這位很可能就不是架構(gòu)師了,因?yàn)檫@僅僅是技術(shù)Stack,項(xiàng)目規(guī)模不大時(shí)Spring+Struts+Hibernate才會(huì)成為架構(gòu)的重點(diǎn)。
除了親自擔(dān)任大型項(xiàng)目的架構(gòu)師,如果了解這些項(xiàng)目為了滿足怎樣的功能與非功能需求而把架構(gòu)設(shè)計(jì)成這樣子也一樣的。所以,盡量多讀一下公司項(xiàng)目的設(shè)計(jì)文檔,愉快的接受其他項(xiàng)目組架構(gòu)評(píng)審會(huì)的邀請(qǐng)。
二、基本能力
完整的軟件開(kāi)發(fā)生命周期經(jīng)驗(yàn)
這個(gè)不用說(shuō)了,幸好中國(guó)的架構(gòu)師什么臟活累活都做過(guò),甚至跟著市場(chǎng)人員跑去做演示這些國(guó)外架構(gòu)師不一定有的經(jīng)驗(yàn)我們都有了,差別只在于一些理論知識(shí)--RUP + CMMI3 + 敏捷原則的細(xì)節(jié)掌握程度。
精通一兩種主流開(kāi)發(fā)語(yǔ)言、保持當(dāng)下架構(gòu)的開(kāi)發(fā)體驗(yàn)
國(guó)內(nèi)的架構(gòu)師到了三十歲以后很多就往理論上跑,而國(guó)外的架構(gòu)師則在往上發(fā)展的同時(shí)保持下面的編程體驗(yàn),所以國(guó)內(nèi)多水王,而國(guó)外則多大師。
水王的設(shè)計(jì)一般會(huì)層次過(guò)高,與實(shí)現(xiàn)之間有斷層,與開(kāi)發(fā)人員溝通困難,自己嘩啦啦編個(gè)驗(yàn)證原型的日子更是一去不返。更痛苦的是,人過(guò)三十之后學(xué)習(xí)能力下降,手藝一旦放下了想重新上手還很難:
但是,也不必要挽起袖子每月編碼若干行,很可能你的"親自出手"因?yàn)闀r(shí)間安排不來(lái)反而拖了大家的進(jìn)度,但一定要保持一個(gè)體驗(yàn)。
宏觀上的,廣度優(yōu)先的了解當(dāng)前主流的技術(shù)與產(chǎn)品
架構(gòu)師如果連Tuxedo與IBM MQ都分不清,一句"這里搞個(gè)異步調(diào)用的middleware,有commercial support的",同樣是層次太高了。架構(gòu)師對(duì)各大公司的完整產(chǎn)品線和的開(kāi)源項(xiàng)目應(yīng)該有宏觀上的了解,好在Wiki里編個(gè)索引。
但同時(shí)也要抵制成為某項(xiàng)技術(shù)專家如Oracle啟動(dòng)參數(shù)優(yōu)化專家的誘惑,技術(shù)細(xì)節(jié)掌握到業(yè)務(wù)職責(zé)需要的程度就剛好了。除非如Spring Framework進(jìn)一步了解能帶來(lái)天大好處。
與業(yè)務(wù)域開(kāi)發(fā)域人員溝通的能力及其他領(lǐng)導(dǎo)能力
IT 架構(gòu)師處在客戶和開(kāi)發(fā)人員之間,必須能夠使用各種媒體(代碼、模型、文檔、PowerPoint以及談話和講座),與技術(shù)和非技術(shù)的干系人進(jìn)行溝通。另外,架構(gòu)師好歹也是個(gè)半大不小的官,其他領(lǐng)導(dǎo)必要的能力就不列了。
參考了IBM DW中國(guó)上的兩篇文章:
《軟件構(gòu)架師的特點(diǎn)》
《觀點(diǎn)與展望,第 3 部分: 什么是有價(jià)值的 IT 體系結(jié)構(gòu)技能,如何學(xué)習(xí)?》
三、鏡子做好了,自己先照一下
要把書(shū)單啃完;
要熟悉NGOSS、3G、IMS這些業(yè)務(wù)知識(shí);
要把公司幾百個(gè)項(xiàng)目的設(shè)計(jì)文檔抽好的看一遍;
要跟隨公司新一波RUP+CMMI3行情;
要重修C++;
要完整了解一遍IBM、BEA們的產(chǎn)品線;
要從那些寫(xiě)得好的架構(gòu)PPT中偷師...