- 相關(guān)推薦
如何成為一名系統(tǒng)架構(gòu)師
系統(tǒng)構(gòu)架師是近幾年來在國內(nèi)外迅速成長并發(fā)展良好的一個(gè)職位,它的重要性及給 IT業(yè)所帶來的影響是不言而喻的。那么如何成為一名系統(tǒng)架構(gòu)師呢?我們一起來學(xué)習(xí)學(xué)習(xí)網(wǎng)友的經(jīng)驗(yàn)!
前言:
來這家公司從事信息化工作已經(jīng)也有三個(gè)年頭了,有必要對這三年的工作和成長以及不足之處做一個(gè)總結(jié)。在此之前,從2001年開始學(xué)習(xí)Java,那時(shí)候用Struts的開發(fā)的企業(yè)也不多,而我在的做項(xiàng)目的企業(yè)當(dāng)時(shí)已經(jīng)自己開發(fā)了Struts的快速開發(fā)平臺,專門做對日軟件外包的項(xiàng)目,在這家公司工作,培養(yǎng)了我JAVA基礎(chǔ)知識,軟件工程的認(rèn)識以及項(xiàng)目管理的知識。隨后博士畢業(yè)后去了一家外企做了4年的IT系統(tǒng)集成研究,主要用Eclipse Plugin搭建研究項(xiàng)目的驗(yàn)證的Prototype,期間研究了SOA,SSH,LDAP,Web服務(wù)發(fā)現(xiàn)等技術(shù)。
剛來這家公司的時(shí)候,領(lǐng)導(dǎo)決策要將系統(tǒng)做重建開發(fā)。項(xiàng)目的具體情況是:我們擁有了成熟的業(yè)務(wù)功能,只要將老的系統(tǒng)的功能照搬到新的系統(tǒng)中,因此,對于老的系統(tǒng)進(jìn)行了一次整理和分析,分析了合理的地方,也分析了不合理的地方,不合理的地方,希望在新系統(tǒng)中進(jìn)行改進(jìn),但原則上,數(shù)據(jù)庫表結(jié)構(gòu)不做大的改動,以免將給將來系統(tǒng)遷移帶來重大困難。當(dāng)然,由于隨著企業(yè)的業(yè)務(wù)的發(fā)展,會有新的需求,但大部分的需求都是沒有改變的。
在項(xiàng)目的成員實(shí)力方面
沒有的是:
1.熟悉JAVA的開發(fā)人員。
2.J2EE項(xiàng)目的經(jīng)驗(yàn)。
有的是:
1.IT項(xiàng)目的開發(fā)、測試和維護(hù)經(jīng)驗(yàn)。
2.數(shù)據(jù)庫系統(tǒng)開發(fā)經(jīng)驗(yàn)。(其實(shí)很重要的,數(shù)據(jù)庫系統(tǒng)對于企業(yè)應(yīng)用來說,數(shù)據(jù)也是很關(guān)鍵的,擁有這樣面的經(jīng)驗(yàn),為項(xiàng)目的后續(xù)開發(fā)提供了不少的經(jīng)驗(yàn)支持)
在項(xiàng)目的初期階段還碰到了技術(shù)選型的問題,根據(jù)應(yīng)用的特點(diǎn),最終選擇了C/S三層結(jié)構(gòu),并選用標(biāo)準(zhǔn)的EJB 3.0作為中間層,采用成熟的商用中間件服務(wù)器,這樣就解決了ORM,數(shù)據(jù)持久化等問題,這樣便確定了技術(shù)方向,這對于沒有經(jīng)驗(yàn)的團(tuán)隊(duì)來說,也是艱難的。
上述便是我團(tuán)隊(duì)的情況的簡要概況。項(xiàng)目總是要做的,因?yàn)轭I(lǐng)導(dǎo)決策了啊。先看上述兩個(gè)問題我們是如何解決的。
1.針對開發(fā)團(tuán)隊(duì)沒有JAVA的開發(fā)經(jīng)驗(yàn),進(jìn)行培訓(xùn),由我親自操刀。培訓(xùn)為期15天,從開發(fā)環(huán)境熟悉,到JAVA基礎(chǔ)知識,上午半天講知識,下午上機(jī)練習(xí)。
2.針對沒有J2EE的項(xiàng)目經(jīng)驗(yàn)。
整個(gè)項(xiàng)目就我一個(gè)人有過J2EE的項(xiàng)目經(jīng)驗(yàn),但是我以前沒有做過J2EE項(xiàng)目的架構(gòu)師至少沒有做過如此大型項(xiàng)目的,我只是做過J2EE項(xiàng)目的開發(fā)(B/S的,而本次項(xiàng)目是客戶端)并了解軟件工程、面向?qū)ο蟮脑O(shè)計(jì)、設(shè)計(jì)模式等。怎么辦?我們是這樣解決的,請老師。專門請了老師來講架構(gòu)設(shè)計(jì)知識。這還不夠,我們花錢請人做架構(gòu)設(shè)計(jì)。但只是做架構(gòu)設(shè)計(jì),生成一個(gè)架構(gòu)說明書后,離架構(gòu)的工作還很遠(yuǎn),還有很長的路要走,而在合作公司做好架構(gòu)設(shè)計(jì)后,他們的工作也就基本結(jié)束了。后面的架構(gòu)方面的工作,基本上是由我來做的。我說說我都做了什么事情。
(1)按照架構(gòu)說明書,將整個(gè)架構(gòu)環(huán)境搭建起來。
(2)開發(fā)一套便于開發(fā)人員開發(fā)的開發(fā)框架。
(3)設(shè)計(jì)了Swing的MVC模式,并開發(fā)實(shí)現(xiàn)。
(4)開發(fā)了整個(gè)系統(tǒng)的基礎(chǔ)組件,為了實(shí)現(xiàn)架構(gòu)中的復(fù)用的原則,這個(gè)很重要。
(5)負(fù)責(zé)整個(gè)系統(tǒng)的權(quán)限的管理,這個(gè)很重要,跟各個(gè)模塊都有關(guān)系。
(6)負(fù)責(zé)開發(fā)的編碼規(guī)范的制定,包括JAVA的編碼的規(guī)范,同時(shí)還有質(zhì)量屬性方面的編碼的規(guī)范。
(7)整個(gè)系統(tǒng)的異常處理、日志、錯(cuò)誤驗(yàn)證等機(jī)制的設(shè)計(jì)和開發(fā);
(8)第三方系統(tǒng)和工具的集成,如報(bào)表系統(tǒng),瀏覽工具的集成等;
上述,只有(1)是現(xiàn)成的。其它的都是具體的架構(gòu)方面的工作。很多人,都以為,架構(gòu)師嘛,不就是高高在上的,待在象牙塔里給開發(fā)人員發(fā)號施令的人嗎?其實(shí)不然,架構(gòu)師需要每天跟開發(fā)人員在一起,一起寫代碼,一起工作,一起交流。
回顧起,在搭建快速開發(fā)框架的過程中,開發(fā)人員在開發(fā)的過程中,提出了很多有意義的改進(jìn)的意見,直到今時(shí)今日,我們還在改進(jìn),只有開明的架構(gòu)師,才能夠設(shè)計(jì)出好的系統(tǒng),好的基礎(chǔ)組件。當(dāng)然沒有意義的,也被篩選掉的,架構(gòu)師必須要有這樣的決斷力。
Swing的MVC模式就不說了,可能每個(gè)團(tuán)隊(duì)對于該項(xiàng)設(shè)計(jì)都會有所不同。
說說如何實(shí)現(xiàn)組件的復(fù)用,要實(shí)現(xiàn)組件的復(fù)用,必須要鼓勵(lì)開發(fā)人員復(fù)用已有的組件以統(tǒng)一界面風(fēng)格以及減少工作量。那么,就要告訴開發(fā)人員,目前我們的系統(tǒng)有哪些基礎(chǔ)組件,他們都是怎么樣使用或調(diào)用的。有了這些,開發(fā)人員自然就肯用了。
關(guān)于編碼規(guī)范,可能很多人覺得這是項(xiàng)目開發(fā)中的小事情,其實(shí)不然,某位架構(gòu)大師說過,架構(gòu)無小事,編碼規(guī)范的執(zhí)行不力,直接影響到整個(gè)項(xiàng)目的代碼質(zhì)量,甚至影響質(zhì)量。例如,要求不要出現(xiàn)在循環(huán),要釋放對象,盡量用StringBuffer等。在編碼規(guī)范的執(zhí)行的難度是,不是說你有沒有規(guī)范,而是你的規(guī)范有沒有被執(zhí)行。那么如何使得你的規(guī)范被執(zhí)行呢?
這就需要架構(gòu)師的耐心和溝通能力了。在整個(gè)項(xiàng)目的開發(fā)過程中,架構(gòu)師始終要保持與開發(fā)人員的溝通,苦口婆心地說,編碼規(guī)范的重要性。時(shí)間長了,開發(fā)人員養(yǎng)成了好的習(xí)慣,架構(gòu)師也就省心了。
根據(jù)上述經(jīng)驗(yàn),做個(gè)總結(jié)。
1.經(jīng)驗(yàn)是可以復(fù)制的,當(dāng)您沒有這方面的人員時(shí),最好請求專業(yè)或外援,并培養(yǎng)自己的人員,同時(shí)有吸收的學(xué)習(xí)。
2.架構(gòu)師是整個(gè)團(tuán)隊(duì)的技術(shù)領(lǐng)導(dǎo),需要具備領(lǐng)導(dǎo)能力。
3.架構(gòu)師需要較強(qiáng)的溝通能力,需要與項(xiàng)目的各個(gè)方面的人員進(jìn)行溝通,與項(xiàng)目經(jīng)理溝通,幫助項(xiàng)目經(jīng)理制定合理的開發(fā)計(jì)劃;與需求分析員溝通,了解系統(tǒng)的關(guān)鍵需求和非功能性需求;與開發(fā)人員溝通,使得架構(gòu)設(shè)計(jì)能夠被真正執(zhí)行;另外還有與項(xiàng)目經(jīng)理、物理架構(gòu)負(fù)責(zé)人溝通等等。
4.架構(gòu)師需要編寫代碼,這樣使自己積累更多的代碼經(jīng)驗(yàn),加深理解設(shè)計(jì)模式,可以幫助自己對于整個(gè)項(xiàng)目更加熟悉,同時(shí)能夠回答開發(fā)人員在開發(fā)過程中出現(xiàn)的所有的問題,樹立個(gè)人威信。
5.架構(gòu)師需要有較強(qiáng)的IT知識和廣博的知識面。IT的知識更新非?,現(xiàn)在云計(jì)算等的出現(xiàn),必然要淘汰一部分架構(gòu)師,因此,架構(gòu)師要保持生命力,必須要不斷地學(xué)習(xí)。
6.架構(gòu)師要懂業(yè)務(wù)知識。架構(gòu)設(shè)計(jì)要滿足系統(tǒng)的需求。我雖然剛到公司不久,但由于之前積累了很多業(yè)務(wù)相關(guān)的知識,經(jīng)過短期的學(xué)習(xí),也掌握了業(yè)務(wù)知識。
7.不要怕做事情,我在整個(gè)系統(tǒng)的開發(fā)過程中,我的開發(fā)量是別人的三倍還多,但我收獲的,則也是三倍還多的經(jīng)驗(yàn)。
自己的不足之處:
1.有時(shí)候會著急,當(dāng)規(guī)范強(qiáng)調(diào)了10遍,還是沒有得到很好的執(zhí)行時(shí),就開始沒有耐心了。
2.需要加強(qiáng)溝通能力,將自己的想法能夠推銷出去。
3.需要在更多的業(yè)務(wù)領(lǐng)域知識方面得到快速的增長。
下一步的目標(biāo)
1.系統(tǒng)理論地學(xué)習(xí)架構(gòu)知識,使得知識更加固化,以進(jìn)一步使得架構(gòu)設(shè)計(jì)更加科學(xué)和有調(diào)理;
2.通過廣泛地閱讀學(xué)習(xí)企業(yè)信息化的各個(gè)方面的知識,包括ERP,SCM,營銷管理,企業(yè)戰(zhàn)略,企業(yè)管理等,每年看書或閱讀文章至少100本或篇;
3.熟悉企業(yè)的業(yè)務(wù)流程,與企業(yè)不同層次的人員多多地進(jìn)行交流,多學(xué)習(xí),多溝通;
4.多交朋友,多向朋友學(xué)習(xí)與交流。
【如何成為一名系統(tǒng)架構(gòu)師】相關(guān)文章:
如何成為優(yōu)秀的系統(tǒng)架構(gòu)師06-03
如何成為一名真正的速錄高手09-10
如何成為一名合格的音響師08-15
如何成為一名合格價(jià)格鑒證師06-06
如何成為一名出色的攝影師12-16
如何成為一名合格的育嬰師09-14
如何成為一名優(yōu)秀的采購師07-31