Posted on 2011-03-07 23:18
網(wǎng)路冷眼@BlogJava 閱讀(1178)
評(píng)論(2) 編輯 收藏 所屬分類:
Architecture
架構(gòu)師最基本的素質(zhì),總結(jié)出兩點(diǎn),1是技術(shù)知識(shí)廣度,2是業(yè)務(wù)行業(yè)深度。
1 架構(gòu)師是技術(shù)領(lǐng)導(dǎo)。
架構(gòu)師必須要有技術(shù),而且還是領(lǐng)導(dǎo)。架構(gòu)師要帶領(lǐng)自己團(tuán)隊(duì)完成自己的任務(wù),完全憑借自己的能力做事情,完全是匹夫之勇,根本不提倡。
2 架構(gòu)師理解軟件流程。
架構(gòu)師必須了解軟件流程,否則無(wú)法驅(qū)動(dòng)整個(gè)團(tuán)隊(duì)前進(jìn),如果一個(gè)架構(gòu)師不熟悉開(kāi)發(fā)流程,無(wú)法協(xié)調(diào)產(chǎn)品線相關(guān)人員進(jìn)行高效工作,也無(wú)法指導(dǎo)團(tuán)隊(duì)成員完成自己的工作。所以來(lái)說(shuō)架構(gòu)師一般不是空降兵(除非是全新的部門),因?yàn)榭战当话悴粫?huì)熟悉新公司的開(kāi)發(fā)流程,即使是同一個(gè)行業(yè)的,各個(gè)公司的差別還是很大。所以說(shuō)聽(tīng)說(shuō)某某去某某公司做首席架構(gòu)師或者首席科學(xué)家,一般是高風(fēng)險(xiǎn)的事情,即使他對(duì)這個(gè)行業(yè)很了解。
3 架構(gòu)師必須熟悉業(yè)務(wù)領(lǐng)域。
如果一個(gè)架構(gòu)師不熟悉自己的行業(yè),做的架構(gòu)就是紙上談兵,熟悉業(yè)務(wù)領(lǐng)域的架構(gòu)師,才能很好的理解需求,做出合適的方案。互聯(lián)網(wǎng)和網(wǎng)絡(luò)安全是完全不同的兩個(gè)方向,即使你熟悉里面的各種具體技術(shù),但是以互聯(lián)網(wǎng)的架構(gòu)來(lái)做網(wǎng)絡(luò)安全產(chǎn)品,肯定是100%的失敗。
我做PKI的時(shí)候,項(xiàng)目最初的使用.net,使用微軟的crytoAPI,開(kāi)發(fā)的很順利。后來(lái)來(lái)了一位新的架構(gòu)師,覺(jué)得.net不能跨平臺(tái),決定?用java,做出產(chǎn)品后,發(fā)現(xiàn)找不到arm cpu的jdk,使用平臺(tái)有限。再次決定使用openssl做,最后這個(gè)項(xiàng)目以失敗而告終。后來(lái)我想過(guò)arm cpu都是嵌入式設(shè)備用的,根本沒(méi)有任何嵌入式設(shè)備提供CA服務(wù)。
4 架構(gòu)師必須要有廣度的知識(shí)。
架構(gòu)師考慮的問(wèn)題必須全面,必須了解的要廣,具體的細(xì)節(jié)可以不關(guān)注,因?yàn)榧?xì)節(jié)變化很快。很多具體技術(shù)人員出身的架構(gòu)師,只關(guān)注于具體的細(xì)節(jié),某些方面做的很好,整體的性能很差。
下面這個(gè)項(xiàng)目的成功可以理解為一個(gè)笑話。某公司的兩個(gè)部門都做c程序的,A部門做的平臺(tái)使用的x86和mips,B部門使用平臺(tái)是x86和 arm,后來(lái)A部門的一個(gè)模塊要給B部門用,最后發(fā)現(xiàn)根本不能運(yùn)行。最后A部門發(fā)現(xiàn)arm平臺(tái)使用big endian模式,這樣A部門的20多名員工,檢查代碼中所有非零整數(shù),經(jīng)過(guò)數(shù)個(gè)月苦戰(zhàn),才修改完畢。其實(shí)解決方法很簡(jiǎn)單,因B部門的代碼也是首先在 x86做的,做的時(shí)候他們考慮了cpu的endian模式。這并不能說(shuō)B部門架構(gòu)師很牛,從另一個(gè)方面說(shuō)他的無(wú)知。因?yàn)榘遄佑刑€,專門切換cpu的是 big endian還是little endian,這樣兩個(gè)部門都可以不修改程序。
5 架構(gòu)師必須是寫程序的高手。
架構(gòu)師一般都是?發(fā)人員出身,一般都是團(tuán)隊(duì)的核心。優(yōu)秀的架構(gòu)師應(yīng)該了解團(tuán)隊(duì)使用各種技術(shù),有了這些知識(shí),才能和開(kāi)發(fā)人軟進(jìn)行有效溝通。
有一個(gè)項(xiàng)目架構(gòu)使用xml做配置,因?yàn)椴《編?kù)很龐大,最后導(dǎo)致xml 達(dá)30多兆,服務(wù)端的java程序使用dom 進(jìn)行過(guò)濾的時(shí)候,30兆xml加載很慢,頻繁出現(xiàn)out of memory。這個(gè)項(xiàng)目后來(lái)擱淺。根據(jù)以前的經(jīng)驗(yàn)發(fā)現(xiàn) msxml加載30多M的xml 不過(guò)幾秒,而且msxml的xpath速度很快,后來(lái)專門為此寫了JNI處理xml的。
6架構(gòu)師是優(yōu)秀的溝通人員。
架構(gòu)師一定要會(huì)忽悠,至少要扯淡。架構(gòu)師不但要指導(dǎo)本部門員工的工作,也要協(xié)調(diào)其他部門的資源,還要向用戶收集需求,制定規(guī)格說(shuō)明書,重要的把用戶的不合理要求砍掉,合理需求遵循自己的思路