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