2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

J2EE項(xiàng)目執(zhí)行:若干最佳實(shí)踐

 duduwolf 2006-01-11
利用模板代碼、開發(fā)手冊、自動化代碼檢查等最佳實(shí)踐改善項(xiàng)目執(zhí)行

概要

軟件開發(fā)是復(fù)雜困難的。針對軟件開發(fā),我們可能會在設(shè)計(jì)觀點(diǎn),相關(guān)解決方案,軟件模式等方面討論很多很多,但是軟件開發(fā)的執(zhí)行過程本身卻是一個(gè)需要許多模式和最佳實(shí)踐以節(jié)約寶貴時(shí)間的領(lǐng)域。本文展示3項(xiàng)軟件執(zhí)行領(lǐng)域的最佳實(shí)踐以解決日常軟件項(xiàng)目執(zhí)行中的問題。        

版權(quán)聲明:任何獲得Matrix授權(quán)的網(wǎng)站,轉(zhuǎn)載時(shí)請務(wù)必保留以下作者信息和鏈接
作者:ShriKant Vashishthav_gyc(作者的Blog:http://blog./page/v_gyc)
原文:http://www./javaworld/jw-11-2005/jw-1114-j2ee.html
譯文:http://www./resource/article/44/44148_J2EE+Best+Practices.html
關(guān)鍵字:J2EE;Best;Practices                                                                                

雖然在幾乎所有的項(xiàng)目中一些相同的問題不斷重復(fù)出現(xiàn),但是我們?nèi)匀蝗鄙倜鞔_的方法來解決它們。 在軟件開發(fā)的職業(yè)生涯中, 我使用了一些方法來解決這些重復(fù)出現(xiàn)的困擾我的大部分開發(fā)項(xiàng)目的問題,這些方法真正有助于項(xiàng)目執(zhí)行效率的提升。本文中,我將與各位分享3項(xiàng)項(xiàng)目執(zhí)行的最佳實(shí)踐,其中的某幾個(gè)方法有充分的資格可以被認(rèn)定為模式(pattern)。
·        使用模板代碼
·        編寫高效的開發(fā)手冊
·        執(zhí)行自動化代碼檢查

使用模板代碼
開發(fā)者可以從參考簡單的業(yè)務(wù)用例和復(fù)雜的業(yè)務(wù)用例的示例代碼實(shí)現(xiàn)中獲得幫助,編寫出有效、高效率的代碼。考慮下面的一些經(jīng)常困擾軟件開發(fā)項(xiàng)目的因素:
·        技術(shù)始終在變化,要找到對于新技術(shù)具有使用經(jīng)驗(yàn)的有競爭力的技術(shù)人員是很困難的事情(譯注: 去做獵頭吧!)。另一方面,開發(fā)新手可能不具備編寫有效正確代碼的經(jīng)驗(yàn)。模板代碼為開發(fā)者的工作提供了良好的參考,使得學(xué)習(xí)新技術(shù)變的相對簡單。
·        學(xué)習(xí)利用新技術(shù)需要時(shí)間,而且如果使用不當(dāng)可能導(dǎo)致一團(tuán)混亂,因此強(qiáng)迫開發(fā)者自己學(xué)習(xí)新技術(shù)不是很好的途徑。 作為替代方法,提供模板代碼作為開發(fā)者編碼的參考使得開發(fā)者在開發(fā)過程中獲得了學(xué)習(xí)新技術(shù)的良好起點(diǎn)。
·        許多項(xiàng)目必須由有限的人員在緊迫的期限內(nèi)完成。項(xiàng)目團(tuán)隊(duì)中的每個(gè)人都不應(yīng)該重新造輪子。高級技術(shù)人員可能在設(shè)計(jì)階段提供幫助,不過項(xiàng)目進(jìn)行到實(shí)現(xiàn)階段可能就要求程序員自助了。一不留意的小問題,到了發(fā)現(xiàn)的時(shí)候可能已經(jīng)造成了混亂。問問自己,使用Javadoc工具的時(shí)候,有幾次遵循了標(biāo)準(zhǔn)的格式和文檔生成指導(dǎo)方針呢?代碼是否遵循了定義良好的習(xí)慣用法和最佳實(shí)踐呢?那么如何貫徹這些良好實(shí)踐呢?此處,可視的模板代碼能夠提供比技術(shù)書籍或者參考手冊更有效的幫助,因此,應(yīng)該使用模板代碼。
·        許多軟件項(xiàng)目不僅體積龐大,而且分布式地進(jìn)行開發(fā)。有時(shí),項(xiàng)目的執(zhí)行是同時(shí)在世界上的不同地點(diǎn)展開的。作為開發(fā)人員你不想看到——當(dāng)你的項(xiàng)目部分接近完成時(shí),你的代碼的客戶驚奇的發(fā)現(xiàn)你的代碼沒有滿足他們的需求。應(yīng)該在開始編寫代碼實(shí)現(xiàn)功能前,將示例代碼送給你的客戶評審,并記錄反饋。這些示例代碼不應(yīng)該僅僅是類似”世界,你好”的程序,應(yīng)該具有代表性,與實(shí)際編寫的代碼很接近。
·        通常開發(fā)者都有一堆參考手冊、標(biāo)準(zhǔn)、程序框架等資料,可以在項(xiàng)目中通過它們來獲得幫助。但是,即使已經(jīng)完成了設(shè)計(jì)工作,編碼的風(fēng)格也不是顯而易見的,難以遵守??梢暤哪0宕a可以提供這方面的幫助。除非開發(fā)者可以看到真實(shí)的代碼例程,否則他們對當(dāng)前項(xiàng)目的解釋彼此間可能有些許的出入。 一個(gè)簡單功能由多個(gè)開發(fā)者來實(shí)現(xiàn),其實(shí)現(xiàn)方式可能是不同的,甚至可能沒有一個(gè)與推薦的模擬最佳實(shí)現(xiàn)的方式相同。

模板代碼的實(shí)現(xiàn)
首先,召集一組專家(技術(shù)上的和業(yè)務(wù)上的)從目標(biāo)項(xiàng)目的問題域中甄別出簡單用例和復(fù)雜用例各一個(gè),并在現(xiàn)有設(shè)計(jì)的基礎(chǔ)上分別實(shí)現(xiàn)這兩個(gè)用例。這樣,項(xiàng)目組就擁有了自己的模板代碼。下面列出了一些編寫模板代碼的小技巧
·        模板代碼中應(yīng)該包含立即可用的編譯和部署腳本。否則,在開發(fā)的構(gòu)建階段解決這些問題又要浪費(fèi)不少時(shí)間。
·        項(xiàng)目的基本目錄結(jié)構(gòu)應(yīng)該準(zhǔn)備完畢,并且包含了欲在項(xiàng)目中使用的各種庫。
·        模板代碼應(yīng)該遵循項(xiàng)目中使用的命名規(guī)范、代碼風(fēng)格、其它標(biāo)準(zhǔn)以及應(yīng)用框架的要求。
·        模板代碼中應(yīng)該使用定義良好的Javadoc模板(比如、基于Eclipse的Javadoc模板),以幫助開發(fā)人員編寫javadoc注釋。編寫良好的javadoc注釋是很重要的,通常這些注釋可能是代碼維護(hù)和再開發(fā)團(tuán)隊(duì)的唯一可用的文檔。
·        程序語言中明確的編碼慣用法應(yīng)該在模板代碼中使用,這有助于開發(fā)者編寫有效的代碼。
·        模板代碼應(yīng)該明確定義使用開發(fā)框架的標(biāo)準(zhǔn)方法。對于新的開發(fā)者來說,在項(xiàng)目的初始構(gòu)建階段編寫基于特定框架的實(shí)現(xiàn)類是很困難的任務(wù)。示例代碼有助于新的開發(fā)者理解框架等概念。即使框架有許多文檔,利用框架進(jìn)行有效率的開發(fā)也并不都是很容易。
·        模板代碼應(yīng)該展示如何利用JUnit或其他測試框架編寫測試用例(test cases)。
·        客戶的技術(shù)團(tuán)隊(duì)?wèi)?yīng)該評審這些模板代碼,這樣他們對于在項(xiàng)目構(gòu)建階段結(jié)束時(shí)的代碼質(zhì)量具有更明確的認(rèn)識,而不會在最后時(shí)刻感到意外。
·        模板代碼應(yīng)該從頭到尾的涵蓋用例,比如從表示層到數(shù)據(jù)層。
·        對于模板代碼的各種細(xì)枝末節(jié)應(yīng)該進(jìn)行一次詳盡的介紹,使得開發(fā)者熟悉它們。開發(fā)者應(yīng)該理解在架構(gòu)的每個(gè)層次需要做那些工作、使用了(或者可能使用)那些編碼慣用法和最佳實(shí)踐,以及為什么使用它們。

使用模板代碼的好處
·        開發(fā)者獲得開始編寫代碼的參考
·        客戶與開發(fā)者就項(xiàng)目預(yù)期質(zhì)量達(dá)成一致,因而避免了通常由于理解差異產(chǎn)生的各種問題。
·        開發(fā)者擁有了開始編碼工作的骨架。
·        開發(fā)者更容易掌握并應(yīng)用項(xiàng)目中使用的開發(fā)框架和各種外部API,這有助于提高開發(fā)效率。
·        開發(fā)者沒有重新造輪子。大部分的最佳開發(fā)實(shí)踐和編碼慣用法都擺在了他們面前,這也可以提高開發(fā)效率。


有效的開發(fā)手冊

假設(shè)我們必須完成一個(gè)日常開發(fā)人員為30到50人的大項(xiàng)目。不是所有的開發(fā)人員都掌握了需要使用的技術(shù)以及遵循的標(biāo)準(zhǔn)。一個(gè)項(xiàng)目可能需要使用很多技術(shù)以及私有的開發(fā)框架。這些框架可能在以后的Java企業(yè)項(xiàng)目中使用。有效的在項(xiàng)目間,開發(fā)者之間進(jìn)行大量知識的轉(zhuǎn)移是一個(gè)大挑戰(zhàn)。知識轉(zhuǎn)移也涉及到如下的一些問題:
·        很多大型項(xiàng)目的開發(fā)持續(xù)很長時(shí)間(1到2年)。我們必須正視這樣的事實(shí):軟件行業(yè)具有相當(dāng)高的離職率,這是基本的現(xiàn)實(shí)也是一個(gè)挑戰(zhàn)。雇用新人可能很容易,但是教授新人項(xiàng)目知識卻又是一項(xiàng)艱巨任務(wù),特別的,考慮到項(xiàng)目的進(jìn)展不能停滯不前。
·        一些開發(fā)者可能不具有期望的技術(shù)水平?,F(xiàn)在,適時(shí)的找到掌握技術(shù)的開發(fā)者是很困難的。當(dāng)項(xiàng)目期限很急時(shí),新的開發(fā)者沒有時(shí)間去學(xué)習(xí)厚厚的技術(shù)書籍或者參考手冊。一部分人可能工作敏銳、高效,這樣可以騰出額外時(shí)間來學(xué)習(xí)并應(yīng)用新的技術(shù),但是不能假定所有人都會如此。
·        維護(hù)一個(gè)構(gòu)建完畢的軟件項(xiàng)目同樣也是大的挑戰(zhàn)。在開發(fā)周期后的代碼維護(hù)工作可能是由客戶的IT團(tuán)隊(duì)執(zhí)行的。對他們來說,熟悉項(xiàng)目的技術(shù)架構(gòu)并且改動代碼以做出改變很困難。如果沒有定義明確的方式來傳遞這些知識,那么在維護(hù)階段的初期,客戶IT團(tuán)隊(duì)研讀項(xiàng)目代碼和設(shè)計(jì)文檔的工作可能會是很沮喪的經(jīng)歷。

開發(fā)手冊應(yīng)該能夠解決上面提到的問題,但是如何編寫一個(gè)有效的開發(fā)手冊呢?

編寫開發(fā)手冊
下面是一些如何編寫開發(fā)手冊的提示:
·        開發(fā)手冊應(yīng)該包含全部與搭建開發(fā)環(huán)境相關(guān)的必要信息
·        開發(fā)手冊的語句應(yīng)該簡明易讀。如果閱讀的人發(fā)現(xiàn)手冊很難閱讀,這不是閱讀者、而是手冊編寫者的失敗。
·        開發(fā)手冊應(yīng)該包含大量的示例。示例可以有效地表明手冊的內(nèi)容。
·        請求一位不熟悉項(xiàng)目中所使用的技術(shù)的開發(fā)者檢查開發(fā)手冊。這樣,如果手冊內(nèi)包含會造成迷惑或者不明確的內(nèi)容,可以在其它人使用本手冊前修改這些地方,以使手冊更清晰明確。
·        開發(fā)手冊應(yīng)該在底層設(shè)計(jì)階段,作為階段任務(wù)的一部分完成。當(dāng)構(gòu)建階段開始時(shí),開發(fā)者可以有效利用本手冊。
·        開發(fā)手冊需要包括多少信息呢?如何在信息的多寡中平衡呢?開發(fā)者不喜歡厚重的手冊。但是,開發(fā)手冊中不能遺漏可以為許多不明確之處提供語境的信息。需要考慮開發(fā)者的真正需求,而不是僅僅考慮可以提供的全部信息是什么。使用簡單的、直截了當(dāng)?shù)?、漸進(jìn)的方式來編寫開發(fā)手冊。
·        開發(fā)手冊的信息提供方式應(yīng)該與閱讀者的閱讀直覺相符,而不該是在各處零落地散布著這樣那樣的信息。手冊內(nèi)容的組織方式應(yīng)該與現(xiàn)實(shí)中開發(fā)項(xiàng)目時(shí)需要閱讀信息的先后步驟一致。 比如,對于Java企業(yè)項(xiàng)目,首先需要搭建開發(fā)環(huán)境,然后開始表現(xiàn)層和應(yīng)用數(shù)據(jù)層的編碼工作。手冊信息也應(yīng)該以同樣的順序組織。
·        需要明確的是:手冊不能迷惑開發(fā)者。比如,開發(fā)者在編寫Struts框架下的Action類時(shí)需要使用特定的Xdoclet標(biāo)簽,那么開發(fā)者應(yīng)該很清楚項(xiàng)目中使用的各種XDoclet標(biāo)簽的意義和使用方式。為了查找更詳盡的信息,開發(fā)者總是可以參考開發(fā)手冊。

下面我們考慮一個(gè)在Java企業(yè)項(xiàng)目中的使用的真實(shí)地開發(fā)手冊應(yīng)該是什么樣的,它應(yīng)該包含的信息細(xì)節(jié)如下:
·        開發(fā)環(huán)境搭建的細(xì)節(jié):當(dāng)新的開發(fā)者加入項(xiàng)目時(shí),必須搭建開發(fā)環(huán)境,然后才能開始工作。不要認(rèn)為開發(fā)者清楚項(xiàng)目的大小細(xì)節(jié)。如果項(xiàng)目一起使用了Eclipse和Weblogic開發(fā)Web應(yīng)用,新的開發(fā)者可能都不清楚Eclipse或者Weblogic是什么東東。因此,搭建開發(fā)環(huán)境的細(xì)節(jié)信息應(yīng)該是開發(fā)手冊的第一部分。具有基本Java知識的新開發(fā)者應(yīng)該很容易的按照手冊中的這些信息搭建開發(fā)環(huán)境。
·        表現(xiàn)層的細(xì)節(jié):通常,開發(fā)者對某個(gè)用例的實(shí)現(xiàn)從表現(xiàn)層開始。開發(fā)手冊中應(yīng)該包含如何創(chuàng)建表現(xiàn)層組件元素的詳細(xì)步驟。比如,項(xiàng)目的表現(xiàn)層使用Struts框架,手冊中應(yīng)該包含如何編寫Action類和Form類的確定步驟。如果項(xiàng)目使用XDoclet來構(gòu)建Struts配置文件struts-config.xml和其他配置文件,相應(yīng)的這些步驟也應(yīng)該包含在內(nèi)。JSP的相關(guān)技術(shù)信息也應(yīng)該如此。應(yīng)用MVC模式,無論如何不應(yīng)該在JSP頁面中包含任何Java代碼來實(shí)現(xiàn)業(yè)務(wù)邏輯。但是在實(shí)際開發(fā)中如何使用JSTL(JSP標(biāo)準(zhǔn)標(biāo)簽庫)標(biāo)簽來實(shí)現(xiàn)那樣的要求對于初學(xué)者或者是中級開發(fā)者可能都是很大的難題。開發(fā)手冊中包含一些展示如何在JSP頁面中使用JSTL標(biāo)簽的真實(shí)示例可能對這些開發(fā)者有些幫助。
·        業(yè)務(wù)層的細(xì)節(jié):業(yè)務(wù)邏輯可以應(yīng)用無狀態(tài)EJB組件、基于Spring的組件、或者簡單的原始java對象(plain-old java object)來實(shí)現(xiàn)。開發(fā)手冊中應(yīng)包含項(xiàng)目中使用的業(yè)務(wù)組件代碼的骨架以及業(yè)務(wù)邏輯實(shí)現(xiàn)的實(shí)際例程
·        數(shù)據(jù)層的細(xì)節(jié):依賴于項(xiàng)目使用的持久化機(jī)制,開發(fā)手冊中應(yīng)該包含JDBC、Hibernate或者任何基于其它框架的DAO(數(shù)據(jù)訪問對象)的信息,包含項(xiàng)目中如何使用此持久化機(jī)制的步驟以及最佳實(shí)踐。
·        其它信息:手冊需提供J2EE項(xiàng)目架構(gòu)各層中使用的各種內(nèi)部或者外部組件的信息。例如,應(yīng)該包括日志、郵件、代碼檢查和安全等組件的信息。同樣的,在項(xiàng)目后期,手冊中應(yīng)該包含一些如何擴(kuò)展業(yè)務(wù)需求的章節(jié)。比如,項(xiàng)目中使用了批處理框架,那么如何為新的批處理需求擴(kuò)展它呢?

自動化代碼檢查

代碼檢查是另外一項(xiàng)需處理的事項(xiàng)。當(dāng)代碼大量生成時(shí),持續(xù)的代碼檢查是必須的工作。即使已經(jīng)定義了一套代碼檢查的規(guī)則,還是有許多問題沒有辦法在這些規(guī)則中描述并加以限制。基于個(gè)人能力和經(jīng)驗(yàn),每個(gè)人都有自己的代碼檢查方式。同時(shí),有些問題很微小,無法進(jìn)行逐行檢查。 如果需要檢查的代碼數(shù)量很大,這些微小的問題可能會在一些地方被忽略掉。如果IDE自身產(chǎn)生了錯(cuò)誤又怎么辦?還好,有些工具可以替代人工代碼檢查來發(fā)現(xiàn)這些問題。

Eclipse IDE的設(shè)置
有時(shí), 設(shè)置IDE的選項(xiàng)可以提供些幫助。比如,你可以配置Eclipse IDE的選項(xiàng),當(dāng)代碼中出現(xiàn)問題時(shí)顯示警告。下圖是如何在Eclipse中設(shè)置Javadoc配置選項(xiàng)的示例。

resized image
圖 1. Eclipse Javadoc 設(shè)置

選項(xiàng)設(shè)置好后,Eclipse會在出現(xiàn)錯(cuò)誤時(shí)顯示警告信息,然后開發(fā)者可以修改。如果項(xiàng)目標(biāo)準(zhǔn)很嚴(yán)格,IDE的警告將升級為錯(cuò)誤,開發(fā)者必須處理這些問題。

Jlint 代碼檢查工具
類似的,可以在Eclipse中使用Jlint工具以發(fā)現(xiàn)代碼中的微小問題。下面是在Eclipse中如何使用JLint的方法和步驟:
·        下載jlint的2進(jìn)制版本以及相應(yīng)的Eclipse插件,解壓縮2進(jìn)制版本到C:\lint目錄,解壓縮插件到Eclipse插件目錄。
·        運(yùn)行Eclipse, 選擇菜單項(xiàng)Window(窗口)->Preferences(設(shè)置)->Java->Jlint,設(shè)定jlint.exe的目標(biāo)位置為C:\jlint\jlint.exe
·        在Eclipse的資源(Resource)視圖中右鍵點(diǎn)擊你的項(xiàng)目,然后選擇jlint選項(xiàng)即可。當(dāng)一次完整地工作區(qū)編譯后,Jlint會在工作區(qū)內(nèi)可能出現(xiàn)問題的地方顯示黃色警告標(biāo)記。
下圖 顯示了如何在Eclipse中配置Jlint

resized image
圖2 Eclipse中Jlint插件的配置

Lint4j
如果不使用IDE,那么可以結(jié)合ant使用lint4j發(fā)現(xiàn)代碼中的問題。Ant腳本中需要聲明的參數(shù)如下:
·        lint4j.dist.dir: lint4j的分發(fā)包的安裝目錄
·        packages:需要由lint4j檢查的java包名稱
·        ignorePackages: 不需要由lint4j檢查的java包名稱

下面是使用jlint的ant腳本示例:
lint4j的Ant Build腳本
<?xml version="1.0"?>
<project name="Lint4j" default="lint4j" basedir=".">

  <property name="lint4j.dist.dir"         value="C:/tools/lint4j-0.8.2"/>  <!—lint4j包的路徑-->

  <property name="lint4j.level"            value="5"/>     <!—lint4j檢查使用的參數(shù)-->
  <property name="lint4j.exact"            value="false"/>  <!—lint4j檢查使用的參數(shù)-->

    <taskdef name="lint4j" classname="com.jutils.lint4j.ant.Lint4jAntTask">
        <classpath>
            <pathelement location="${lint4j.dist.dir}/jars/lint4j.jar" />  <!—lint4j包的信息-->
        </classpath>
    </taskdef>
    <target name="lint4j" description="Run Lint4j on your source">
<!—lint4j  忽略不處理的java包   需要檢查的包         其它參數(shù),詳見lint4j文檔        -->
        <lint4j     ignorePackages=""      packages="com.domain.*" level="${lint4j.level}" exact="${lint4j.exact}">
            <sourcepath>
                <dirset dir=".">
                    <include name="**/src" />
                </dirset>
            </sourcepath>
            <classpath>
                <pathelement location="C:/bea/weblogic81/server/lib/weblogic.jar" />
                <fileset dir=".">
                    <include name="**/*.jar" />
                    <include name="**/*.zip" />
                </fileset>
                <fileset dir="ejblib">
                    <include name="**/*.jar" />
                </fileset>
                <fileset dir="lib">
                    <include name="**/*.jar" />
                </fileset>
            </classpath>
            <formatters>
                <formatter type="text" />
                <formatter type="text" toFile="./target/lint4j.log"/>  <!—lint4j報(bào)告文件-->
            </formatters>
        </lint4j>
    </target>
</project>


Checkstyle工具
代碼檢查的另一個(gè)工具是CheckStyle,它會依照java開發(fā)專家廣泛使用的Java編碼規(guī)范來檢查代碼質(zhì)量??梢越Y(jié)合Ant使用(也有Eclipse插件)。CheckStyle的檢查選項(xiàng)是高度可配置的,可以配置成支持任何代碼規(guī)范的檢查。它的下載版本中包含了一個(gè)支持Sun編碼規(guī)范(Sun’s Coding Conventions)檢查的規(guī)則配置文件。 編寫Ant腳本使得代碼檢查同編譯過程一起完成,這樣開發(fā)者可以注意到代碼包含的錯(cuò)誤并改正它們。

結(jié)論
在軟件開發(fā)項(xiàng)目中的需要面對的大部分的普通問題是重復(fù)出現(xiàn)的。在如今充滿競爭的世界里——縮減開發(fā)期限、降低項(xiàng)目成本的壓力很大,想在每個(gè)項(xiàng)目中重新造輪子根本就沒有時(shí)間。
本文并未對軟件開發(fā)執(zhí)行過程中會出現(xiàn)的問題都提供了解決方案,只是踏出了前行的一步,其目的是展示最佳軟件開發(fā)實(shí)踐和高效工具的使用。了解了這些以及未來會學(xué)習(xí)到的最佳實(shí)踐和模式,你就對軟件生命周期中容易出現(xiàn)的任何障礙做好了準(zhǔn)備。這些也可以使得項(xiàng)目管理者、架構(gòu)人員和開發(fā)者能夠集中精力進(jìn)行“真正”的開發(fā),而不是疲于應(yīng)付開發(fā)中出現(xiàn)的各種問題。
希望在未來的軟件開發(fā)中,更多的專家會貢獻(xiàn)并記錄更多的最佳實(shí)踐和模式,軟件開發(fā)實(shí)踐作為一門藝術(shù)的同時(shí)也成為具有更多確定性的一門科學(xué)。

關(guān)于作者
ShriKant Vashishtha是一名技術(shù)架構(gòu)人員,現(xiàn)供職于印度Tata咨詢服務(wù)有限公司。作者具有超過7年的軟件開發(fā)經(jīng)驗(yàn),曾參與了多個(gè)基于J2EE技術(shù)的大型項(xiàng)目的技術(shù)架構(gòu)設(shè)計(jì)。他具有印度Motilal Nehru National Institute of Technology大學(xué)的電機(jī)工程學(xué)科的工學(xué)學(xué)士學(xué)位。

資源
·        SourceForge上的XDoclet項(xiàng)目,代碼生成器
·        Eclipse主頁 開源的集成開發(fā)環(huán)境平臺
·        SourceForge上的Jlint代碼檢查工具項(xiàng)目主頁
·        Lint4j代碼檢查工具的主頁
·        CheckStyle代碼檢查工具的主頁
·        Sun文檔:如何編寫javadoc注釋
·        更多關(guān)于Java Enterprise Edition的文章,請瀏覽javaworld’s J2EE主題部分
·        譯注:補(bǔ)充翻譯者日常使用的幾個(gè)代碼質(zhì)量檢查工具  pmd設(shè)計(jì)/代碼檢查工具  metrics代碼質(zhì)量檢查工具

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多