- 相關(guān)推薦
j2ee架構師認證指南
J2EE是Java技術(shù)不斷適應和促進(jìn)企業(yè)級應用過(guò)程中的產(chǎn)物。下面yjbys小編就為大家分享最新的J2EE架構師認證指南,希望能幫助到大家!
架構師之路:
一、書(shū)籍
1、基礎書(shū)籍
《Java編程思想》
《J2EE應用與BEA WebLogic Server》
《精通EJB》
2、設計書(shū)籍
《UML和模式應用》
《設計模式:可復用面向對象軟件的基礎》
《Java與模式》
《J2EE核心模式》
《EJB設計模式》
《敏捷軟件開(kāi)發(fā):原則、模式與實(shí)踐》
《企業(yè)應用架構模式》
《軟件架構:組織原則與模式》
《重構:改善既有代碼的設計》
3、流程書(shū)籍
《統一軟件開(kāi)發(fā)過(guò)程》
二、專(zhuān)注做好一件事
1、分享
分享自己的工作或者學(xué)習心得,同時(shí)會(huì )有理解、應用、總結、表達甚至推廣方面的提高,對于自己的進(jìn)步很有利。
2、共進(jìn)
找志同道合的高手,和他們多交流,向他們多學(xué)習,少走彎路,同時(shí)擴大自己的社交圈子。
3、協(xié)同
學(xué)習重要,實(shí)踐也很重要。有機會(huì )參與開(kāi)源項目,與世界各地的高手交流,學(xué)習。
4、修煉
能力不是天生的,是可以后天培養的;能力不是一成不變的,是可以學(xué)習提高的;一個(gè)人的成功,不是他做事的成功,而是他自我修煉的成功。認真規劃自己的目標和時(shí)間。第一,要找到一件事,把它當目標,然后發(fā)誓把這件事做到超乎想象的程度。第二,要學(xué)會(huì )利用時(shí)間。用長(cháng)遠的眼光來(lái)規劃這件事,用短期角度來(lái)思考和執行這件事。
三、架構師的職業(yè)技能
1、卓越的程序員
做產(chǎn)品之前,架構師必須要幫助產(chǎn)品團隊把可行性、技術(shù)需求以及權衡取舍等因素一一剖析清楚。技術(shù)需求出來(lái)之后,架構師需要設計整體的技術(shù)實(shí)現步驟(大多數成功的架構師都喜歡與其他團隊成員一同完成架構和設計這一塊的工作)。與開(kāi)發(fā)團隊一起,完成設計與實(shí)施的細節。與開(kāi)發(fā)團隊和運維團隊一起,完成部署的過(guò)程。與運維團隊一起,進(jìn)行部署之后的維護和故障排除。在這個(gè)過(guò)程中,一個(gè)架構師至少有一半以上的工作是需要與開(kāi)發(fā)團隊一起進(jìn)行的,一個(gè)架構師不能將實(shí)施細節拋之腦后。一個(gè)架構師必須通過(guò)自己的個(gè)人影響力來(lái)對開(kāi)發(fā)團隊進(jìn)行指導工作,通過(guò)自己寫(xiě)代碼以及和其他成員一起寫(xiě)代碼,來(lái)指導團隊成員實(shí)現每個(gè)架構細節的思路。一個(gè)架構師不僅要會(huì )寫(xiě)代碼,還必須要能夠寫(xiě)出自己設計的系統中最難實(shí)現的那段代碼。這樣他才能夠放心的把“落地”的這個(gè)重擔交給開(kāi)發(fā)團隊來(lái)做。一個(gè)架構師的價(jià)值在于,他不僅能看到系統的美,而且能夠在建造系統的時(shí)候能夠把這些美創(chuàng )造出來(lái)。
素質(zhì):經(jīng)驗和技術(shù)基礎。創(chuàng )造性和知識匯總能力;2、3語(yǔ)言的溝通學(xué)習能力。市場(chǎng)嗅覺(jué)。藝術(shù)氣質(zhì)和冒險精神。邏輯思維和抽象能力。
技能:架構理論和方法學(xué)。對象理論。JEE/.NET/動(dòng)態(tài),技術(shù)領(lǐng)域技術(shù)能力。模式。遺留系統互聯(lián)。中間件。消息機制和協(xié)議。本地化和國際化。安全性和性能。
做為一個(gè)架構師,需要實(shí)現(這個(gè)過(guò)程是結對編程,會(huì )有一個(gè)搭檔)一個(gè)系統最難實(shí)現的一部分?梢詫⑵浞Q(chēng)之為“先鋒”,因為這是檢驗腦中的主意是否真的是一個(gè)好主意的過(guò)程。需要在第一次實(shí)施中會(huì )細化這個(gè)主意。然后才能放心的讓編程團隊的其他成員按照這個(gè)模式來(lái)走。這就是“架構”。
2、抽象思維
抽象思維能力。邏輯思維能力。
3、技術(shù)前瞻性
好的架構師,應該提前想到如何為程序員盡可能減輕負擔,比如數據庫軟件新的特性可以提高性能,簡(jiǎn)化查詢(xún)步驟,那架構師是不是第一時(shí)間要引導程序員去適應新的特性,提高開(kāi)發(fā)效率。技術(shù)前瞻性還體現在對新技術(shù)的選擇上,哪些東西適合自己團隊,哪些不適合肯定要自己心中有本帳。架構師在自己所處的領(lǐng)域肯定了解頗深,未來(lái)本領(lǐng)域技術(shù)該如何發(fā)展,應該有自己的理解。也會(huì )對未來(lái)技術(shù)的發(fā)展有所期盼,有自己的見(jiàn)解。
4、問(wèn)題解決大師
抽象思維是往高層次的升華,透過(guò)問(wèn)題看本質(zhì)則是往深層次的挖掘。從問(wèn)題看本質(zhì),實(shí)質(zhì)上是一個(gè)從表層逐步深入的過(guò)程。在架構師面對一個(gè)用戶(hù)需求時(shí),這個(gè)“用戶(hù)需求”是非常表層的——比如說(shuō),一個(gè)自動(dòng)遠程備份數據庫的功能。而架構師的主要工作,就是把這樣的“業(yè)務(wù)需求”翻譯成“技術(shù)需求”。這個(gè)過(guò)程一方面需要通過(guò)抽象思維將用戶(hù)需求提煉為啟動(dòng)、讀取、存儲、中斷處理等模塊,而另一方面則需要看到更深層次的網(wǎng)絡(luò )、操作系統、硬件等方面,以及其可靠性、穩定性、適用性、安全性等問(wèn)題。如果你在編寫(xiě)Java代碼時(shí)考慮到了JVM的性能,在編寫(xiě)PHP代碼時(shí)想到了潛在的安全問(wèn)題,甚至于在編寫(xiě)HTML+CSS頁(yè)面時(shí)考慮到了不同瀏覽器的兼容性,這些都體現了“透過(guò)問(wèn)題看本質(zhì)”的素質(zhì)。
5、多領(lǐng)域大師
多學(xué)習跨領(lǐng)域、跨學(xué)科的東西。談到跨領(lǐng)域學(xué)習,知識面廣似乎是最好實(shí)現的目標,只要博覽群書(shū),加上高中之前各學(xué)科扎實(shí)的基礎,相信大多數程序員本身就具備一定的跨領(lǐng)域學(xué)習的能力。還有一種跨領(lǐng)域學(xué)習的目標,就是多語(yǔ)種的學(xué)習。學(xué)習除英文之外的語(yǔ)言,既能開(kāi)拓國際視野,也能在平時(shí)的工作中有所建樹(shù)。IT行業(yè)的發(fā)展,依靠的業(yè)務(wù),從而給人們帶來(lái)的方便快捷,改變人們的生活、工作方式,其核心就是服務(wù)?茖W(xué)技術(shù)本身并不能創(chuàng )造價(jià)值,只有當其轉換了生產(chǎn)力之后才會(huì )具有價(jià)值,這一切的核心,就是業(yè)務(wù)。
6、溝通能力
首先自然是溝通要清晰明了,平和待人。架構師不能將自己鎖在自己的象牙塔上,頤指氣使的對程序員發(fā)號施令。做到人性化的溝通,需要我們在平時(shí)就進(jìn)行培養。寫(xiě)出大部頭的架構書(shū),有的時(shí)候并沒(méi)有用VISIO畫(huà)出的簡(jiǎn)單架構圖好理解。人對圖形理解遠遠大于對文字的理解,直觀(guān)簡(jiǎn)單的UML圖可以極大的方便程序員理解架構師的意圖。其次,可以召開(kāi)小范圍的技術(shù)人員會(huì )議,大家一起來(lái)討論,一起理解架構師真正的意圖。甚至就是一塊小白板,幾支筆就能把問(wèn)題擺清楚,講明白,統一意見(jiàn)后的團隊必然干勁十足,再不會(huì )出現互相推諉的情況。
鍛煉溝通能力,首先我們需要更多的感性思考,說(shuō)話(huà)時(shí)也要注重別人的感受,尊重對方才能更好的交流。微軟MVP陳廣琛在與51CTO編輯談到程序員溝通能力時(shí),曾說(shuō)道:“很多程序員總能列出一堆的理由來(lái),說(shuō)明為什么自己不適合學(xué)習或者不需要掌握某項與程序無(wú)關(guān)的技能,例如說(shuō)演講、英語(yǔ)、設計等等。但其實(shí)問(wèn)題并沒(méi)有那么復雜,你需要考慮的只是多學(xué)一項技能是否對你的職業(yè)發(fā)展更有利,只要你愿意,沒(méi)什么是不能改變的。”
7、內力
內力更多的是一種思考能力,結合技術(shù)的思考能力。架構更多的內力體現在對技術(shù)的綜合運用上,光會(huì )編程的程序員,最多就能做到高級程序員,也就是技術(shù)實(shí)現上的高手。就比如兩個(gè)高手比武,比的不光是招式,更多的是對招式的運用,畢竟招式是死的,人是活的。
內功的修煉第一層,自然是開(kāi)發(fā)技術(shù)的培養。從寫(xiě)第一行代碼開(kāi)始,就多想為什么,有沒(méi)有什么其他的路徑能實(shí)現同樣的功能。當我們寫(xiě)了很長(cháng)時(shí)間代碼了,是不是就該考慮更多的問(wèn)題,比如優(yōu)化、預期未來(lái)。其次是對架構的熟悉。要做一名優(yōu)秀的架構師,就得對各種架構做到了熟于心。
更高層次的修煉,就在于不同技術(shù)的學(xué)習。要懂得數據庫知識,懂得安全監控方面的知識,還要懂得網(wǎng)絡(luò )構建方面的知識。這是比較高層次的內功修煉,很有可能與程序員目前所處的開(kāi)發(fā)環(huán)境關(guān)系不大,對程序員來(lái)說(shuō)并不是什么有用的東西。但一個(gè)優(yōu)秀的架構師必須懂得這些,才能更好地抽象軟件的使用環(huán)境,選擇符合需要的架構以及開(kāi)發(fā)模式。
8、權衡取舍
沒(méi)有一個(gè)人可以建造一個(gè)沒(méi)有缺陷的架構。這個(gè)項目可能缺乏時(shí)間,缺乏金錢(qián),缺乏人手,或者缺乏合適的技術(shù)。在項目從開(kāi)始到進(jìn)行中的每時(shí)每刻,架構師都需要對這些架構的“缺陷”有明確的了解。所以架構師必須要對權衡取舍方面有著(zhù)出色的把控能力,即架構師有沒(méi)有看到各方面訴求的差異,以及有沒(méi)有意愿為了這些差異而做出妥協(xié)。一個(gè)大型云計算服務(wù),需要在安全、伸縮性、可用性、性能以及性?xún)r(jià)比方面獲得高分,同時(shí)必須維持全球上百位客戶(hù)不間斷的使用需求。對于系統而言,在某一個(gè)地方或某一個(gè)層面發(fā)生的改變,勢必將影響到系統的其他地方和層面,乃至整個(gè)系統。出于對可用性權衡的研究,加州大學(xué)的Eric Brewer教授提出了CAP理論,認為對于一個(gè)共享數據的系統而言,數據持續性、系統可用性、對網(wǎng)絡(luò )劃分的耐受性這三個(gè)屬性是不可調和的,任何時(shí)候只能同時(shí)達成兩個(gè)。所以在知道了魚(yú)和熊掌不可兼得的情況下,要深刻理解各個(gè)方面不同角度的訴求,并找出各方都可以接受妥協(xié)的制衡點(diǎn),自然是必不可少的。
9、管控能力
作為一名優(yōu)秀的架構師,比較迫切的管理任務(wù)可能就是開(kāi)發(fā)成本與收益平衡的問(wèn)題。舉例說(shuō),采用MySQL做數據庫與采用Oracle做數據庫,價(jià)格肯定有很大差距。但是究竟該采用何種技術(shù),架構師需要仔細權衡用戶(hù)的報價(jià)與本公司收益率的問(wèn)題。又比如說(shuō)采取甲技術(shù)開(kāi)發(fā)出的軟件,界面大方性能一般,但是需要耗費程序員更多的勞動(dòng)時(shí)間,那在有些場(chǎng)景下就不如采用乙技術(shù)快速開(kāi)發(fā)后節約的大量人力成本,盡管界面有些難看。通管理,能增強技術(shù)團隊內部的團結。安全監控也是架構師的重要職責,負責監督整個(gè)開(kāi)發(fā)過(guò)程中可能出現的問(wèn)題,在出現問(wèn)題后還要牽頭及時(shí)解決問(wèn)題。這里我們講到的管控能力,就是這種內部團結的實(shí)現,是一種對于程序員人格尊重的實(shí)現。
10、藝術(shù)氣質(zhì)
架構師最大的價(jià)值在于藝術(shù)。
商業(yè)軟件項目的首要目標是實(shí)現來(lái)自客戶(hù)或公司的商業(yè)需求。然而,在架構過(guò)程中僅僅考慮到實(shí)現商業(yè)需求而建立的系統往往缺乏伸縮性、安全性、可維護性、可靠性、可移植性等等,導致其在短短數年內便因無(wú)法與時(shí)俱進(jìn)而被拋棄。這一點(diǎn)幾乎每一位維護過(guò)項目的程序員應該都能夠體會(huì )到:面對著(zhù)缺乏文檔、不知所云的代碼,想要修改或添加一個(gè)功能卻無(wú)從下手。而一個(gè)優(yōu)美的系統則是可以像有機的生命一樣成長(cháng)的,這是因為從系統開(kāi)始架構的那一刻起,架構師就考慮到這個(gè)系統以后將會(huì )面臨的挑戰,為系統的成長(cháng)預留好空間。項目經(jīng)理經(jīng)常會(huì )對這位架構師提出的看似理想化的要求不置可否——項目經(jīng)理只想著(zhù)能夠盡快以比較低的成本實(shí)現客戶(hù)的需求,然而這些充滿(mǎn)藝術(shù)美感的想法其實(shí)是打造健康——因而優(yōu)美——的系統的根本因素。
在軟件開(kāi)發(fā)產(chǎn)業(yè)發(fā)展的過(guò)程中逐漸建立起了一些行業(yè)準則和參考標準,這些將有助于架構師在面對復雜需求時(shí)仍然能夠保持清晰地頭腦來(lái)思考問(wèn)題。學(xué)習前人總結的軟件與架構方面的知識,遵循既定的指導標準——比如,按照模版編寫(xiě)軟件架構文檔——看似死板,卻是必要的修煉。這些架構師的基本功是全面的、抽象的、深層次的。沒(méi)有這些基礎,那么架構師連實(shí)現商業(yè)需求都會(huì )感到吃力,更不要說(shuō)去顧及需求之外的東西。另外我們提到過(guò)架構師需要有前瞻性:超前的眼光是架構師實(shí)現其藝術(shù)追求的必不可少的一部分。
閱讀公開(kāi)的軟件架構文檔(Software Architecture Document)是一個(gè)很好的學(xué)習途徑(在Google上能夠找到很多)。軟件架構文檔是架構師在項目早期階段對于系統的一個(gè)描述性概覽,這份文檔提供了這個(gè)系統預計實(shí)現功能的概述,這個(gè)系統將會(huì )使用什么技術(shù)以及可能存在的技術(shù)局限,以及最重要的部分:視圖模型。
用例視圖(Use-Case View):這是業(yè)務(wù)需求的角度。
邏輯視圖(Logical View):這是功能實(shí)現的角度,用例執行的流程圖。
上面兩個(gè)視圖是必需的,也往往是項目經(jīng)理最關(guān)注的部分。如果只考慮這兩個(gè)角度,系統可以被建立,但正如之前所描述的那樣,是不可能優(yōu)美的。架構師還需要視情況考慮下面這些視圖:
進(jìn)程視圖(Process View):如果系統是多線(xiàn)程的,高并發(fā)的,則需要考慮線(xiàn)程的角度。
部署視圖(Deployment View):如果系統分布在多節點(diǎn),則需要考慮服務(wù)器端和客戶(hù)端節點(diǎn)等硬件映射的角度。
數據視圖(Data View):如果持久層在系統中很重要,則需要考慮數據的角度。
有些視圖框架有一定通用性,比如業(yè)內廣為流傳的4+1模型、RM-ODP模型等等;但是對于每一個(gè)系統需要考慮哪些視圖,則需要架構師去摸索、去感覺(jué)、去研究;況且現在新技術(shù)層出不窮,一個(gè)比較前沿的項目需要從前人沒(méi)有考慮過(guò)的角度看問(wèn)題也不是沒(méi)有可能。如果架構師沒(méi)有一定的藝術(shù)氣質(zhì)來(lái)指引方向,那么一味的照搬現有的模式可能會(huì )水土不服而使系統變得臃腫復雜,而完全不考慮商業(yè)需求之外的因素則會(huì )讓系統先天不足而夭折。
如果沒(méi)有扎實(shí)的技術(shù)基礎,如果架構師缺乏全局觀(guān)、抽象思維能力以及透過(guò)問(wèn)題看本質(zhì)的能力,那么他僅僅為了實(shí)現客戶(hù)需求都會(huì )感到力不從心,更不用說(shuō)發(fā)揮自己的藝術(shù)氣質(zhì)云云了。從另一個(gè)角度來(lái)講,做藝術(shù)的架構師們也都是行業(yè)里大師級別的人物了,這也是架構師們的終極目標吧!
四、架構師的進(jìn)取之路
在管理體系里面,一人的個(gè)人特性決定了你在哪個(gè)位置,而技術(shù)技能只是做事實(shí)施的必需。架構師這個(gè)職務(wù),同時(shí)要求較高的個(gè)人素質(zhì)和技術(shù)能力,因此它的進(jìn)取之路總結起來(lái)就是:做人、做事,做架構師。
1、個(gè)人特性
有效溝通:
包括學(xué)會(huì )談判,心里分析,局面分析,寫(xiě)作訓練。
學(xué)會(huì )談判:
包括對結果的預期,過(guò)程的控制,適時(shí)停止討論。
風(fēng)險與防備:
包括冷靜觀(guān)察,最大的風(fēng)險是成本的枯竭,準確理解決策者的意圖和方向。
抽象思維:
包括理性決策,把事情搞清楚。
2、技術(shù)能力
模型化:
包括建立抽象模型,基于模型分析與評估,準確的圖形表達。
實(shí)現能力:
包括架構推行,體系/系統的把握,設計能力。
決策背景:
包括需求決定設計,豐富的領(lǐng)域知識。
五、架構師
架構師是具有技術(shù)發(fā)言權,方向決策權,和團隊人員開(kāi)發(fā)資源調配權的開(kāi)發(fā)團隊的TeamLear,也是這個(gè)程序的設計者,當然他是這個(gè)程序團隊的靈魂。進(jìn)行沒(méi)有設計的架構設計不叫架構師。面向未來(lái)的,才叫設計,設計因未來(lái)而存在,沒(méi)有創(chuàng )新,就沒(méi)有設計,沒(méi)有改變,就沒(méi)有設計。用進(jìn)化論去思考你的設計,讓你的設計超越一切理論,設計只是記憶的載體而不是記憶的全部,其實(shí)程序員是藝術(shù)家,而不是建筑工人。
【j2ee架構師認證指南】相關(guān)文章:
j2ee架構師介紹08-03
sun認證報考指南09-26
微軟認證報考指南10-21
思科認證考試報考指南12-05
微軟認證考試指南06-08
Adobe認證考試指南04-25
sun java認證報考指南09-07
Oracle認證考試指南09-23
IBM認證考試指南09-23
Java認證考試報考指南09-19