本文轉(zhuǎn)自http://www.suneca.com
一直想寫一篇這樣的總結(jié)性文章,但不是沒有時間就是沒有勇氣寫下去,因?yàn)榕聞e人丟臭雞蛋。這兩天有時間,終于鼓起勇氣,將這篇文章寫來下!也希望對一些正在尋找更好發(fā)展的朋友能有點(diǎn)幫助,也希望對于一些技術(shù)跟管理方面的牛人,能給予一些建議。
作為一名項(xiàng)目經(jīng)理、系統(tǒng)架構(gòu)師或技術(shù)骨干,其水平如何,關(guān)系到公司的項(xiàng)目管理、軟件質(zhì)量管理等方面的問題。項(xiàng)目經(jīng)理或技術(shù)骨干應(yīng)該要起帶頭作用,使整個團(tuán)隊(duì)的開發(fā)及管理能達(dá)到一種更高的水平。
那 作為一名項(xiàng)目經(jīng)理或公司技術(shù)骨干應(yīng)該學(xué)會那些工具及知識點(diǎn)呢?涉及到這一塊的工具及技術(shù)點(diǎn)非常多,如何去選擇,是擺在項(xiàng)目經(jīng)理、系統(tǒng)架構(gòu)師跟技術(shù)骨干面前 的問題。根據(jù)公司及團(tuán)隊(duì)的情況,選擇合適的工具或技術(shù)框架,這一點(diǎn)非常重要。在項(xiàng)目的不同階段,需要有不同的工具來支持。
按照軟件系統(tǒng)的生命周期的六個階段,一般分為需求分析階段、系統(tǒng)設(shè)計(jì)階段、系統(tǒng)開發(fā)階段、軟件測試階段、系統(tǒng)發(fā)布階段、系統(tǒng)維護(hù)階段,這幾個階段都需要有不同工具的支持。
一、需求分析階段:
第一、項(xiàng)目管理及需求管理工具
項(xiàng) 目管理工具很多公司都在使用,為什么要使用這些工具?假如沒有使用這些工具,而是使用Excel或Word進(jìn)行記錄,那當(dāng)需求變更?需求實(shí)現(xiàn)情況的跟蹤? 軟件是否能按時交付?將是一件非常煩鎖且容易出錯的事情。一個軟件項(xiàng)目、開發(fā)團(tuán)隊(duì)能否獲得成功,管理非常關(guān)鍵。比較有名的商業(yè)化工具有:MicroSoft Project Server及Project 2003、IBM Rational RequisitePro、JIRA、PowerDesinger。比較有名的開源需求管理工具包括:OSRMT(Open Source Requirements Management Tools)、Xplanner、Openworkbench等等。
很多軟件公司都會使用SharePoint,在SharePoint平臺上,只要你想得到,基本上都可以通過配置方式來滿足你的業(yè)務(wù)需求。在SharePoint上,可以跟MicroSoft Project Server很好的結(jié)合,再配置Project 2003為客戶端,進(jìn)行公司的項(xiàng)目管理。也許對Project操作習(xí)慣的問題,在Web界面進(jìn)行項(xiàng)目管理的時候,總覺得很不方便。
IBM Rational RequisitePro(http://www.ibm.com )可以算是最骨灰級的一個軟件了,假如你公司整個軟件生命周期管理都是采用IBM的解決方案,那使用RequisitePro是一個非常好的解決方案。需要這些軟件可以到IBM官方網(wǎng)站上去下載一個最新版本,或者在電驢上面下載一些“特別”版本。設(shè)計(jì)工具、管理工具的完美結(jié)合,這個正是IBM Rational RequisitePro的強(qiáng)項(xiàng)。RequisitePro跟Offce結(jié)合得也是非常完美。
JIRA(http://www.atlassian.com )原來只是一個缺陷跟蹤系統(tǒng),你可以在JIRA上面創(chuàng)建新的ISSUE,當(dāng)ISSUE分配給某個程序員時,系統(tǒng)會自動發(fā)送一封郵件給該程序員,提示有新的BUG。JIRA也有提供一個Eclipse插件,你可以在Eclipse上面,查到屬于自己的ISSUE,并快速解決。現(xiàn)在JIRA也可以用來做項(xiàng)目管理,在操作方面非常人性化,個人一直非常喜歡使用JIRA來進(jìn)行項(xiàng)目管理、缺陷管理,再結(jié)合Eclipse,簡直就是完美!但作為商業(yè)的軟件,價格也非常貴,互聯(lián)網(wǎng)上也有很多Crack,大家有興趣也可以搜一下。
OSRMT(http://sourceforge.net/projects/osrmt )是一個開源的需求管理工具,分為客戶端跟服務(wù)器,也提供了一個安裝界面供用戶安裝,做開源的已經(jīng)算是做得非常完美了。當(dāng)前最新版本是V1.5,有興趣的朋友可以下載一個最新版本玩一下,操作還算是挺人性化的。
Xplanner(http://www.xplanner.org )是一個開源的,基于XP編程的項(xiàng)目管理軟件,它可以幫我們生成一些統(tǒng)計(jì)圖表。這個軟件從06年底發(fā)布0.7b7版后,就再也沒有更新過了,我對開源工具的看法就是:版本號沒有超過1.0版,我都不會應(yīng)用于生產(chǎn)!對于Xplanner,也是停留在試用的階段。
Openworkbench(http://www.openworkbench.org ) 也是一個開源的項(xiàng)目管理軟件,其功能跟Project 2003相似,是一個值得大家去使用的一個工具,但對于中國很多軟件公司,都是使用特別版的Project 2003。假如你很尊重版權(quán),又不想使用Project 2003,那Openworkbench是一個非常好的選擇。
第二、需求分析工具
需求分析工具用得比較多可能就是Rational Rose、MicroSoft Visio或MindManager,一般我們使用Rational Rose來進(jìn)行用例分析,畫用例圖,畫狀態(tài)圖;使用MicroSoft Visio來畫出應(yīng)用系統(tǒng)的結(jié)構(gòu)圖、流程圖等。當(dāng)然,對于MicroSoft Visio能畫出來的東西,其實(shí)Rose也一樣可以實(shí)現(xiàn),只是,大家都是這么干,我們也沒有必要專門去做一些特例的東西,特別是對于一些比較特殊的公司及行業(yè)。
Ration Rose 2003是 一個值得懷念的工具,至今還是有很多公司跟個人都是使用,個人覺得這個軟件版本算是最經(jīng)典的一個,但對于現(xiàn)在所見即所得的要求下,使用Rose 2003,可能沒有辦法滿足你,因?yàn)樗枰?jīng)過一些小操作才能滿足你的要求。但不可否認(rèn),它是一個非常優(yōu)秀的軟件。現(xiàn)在對于一些喜歡使用新工具新技術(shù)的程 序員,也許現(xiàn)在他們正在使用RSA。
MicroSoft Visio(http://www.microsoft.com )是每個搞設(shè)計(jì)的人都會用的一個工具,我們一般使用Visio來畫系統(tǒng)結(jié)構(gòu)圖、關(guān)鍵流程圖、系統(tǒng)部署結(jié)構(gòu)圖等。MicroSoft Visio也提供了UML的功能,可以用它來畫用例圖、類圖、狀態(tài)圖,時序圖等,但一般這個功能很少使用。至少我基本上不用。
MindManager(http://www.mindjet.com ) 是一個非常好用的工具,我們用來描述我們的思維,很多人都不喜歡通過軟件來描述,而是通過一張紙,然后在上面進(jìn)行涂鴉,接著跟客戶或團(tuán)隊(duì)進(jìn)行思維溝通。 MindManager很好地解決了這個問題。MindManager跟Office結(jié)合得非常完美,可以生成Word、Excel、PDF等文件。這個 工具是我一直在使用的一個軟件,非常好用。最新版本為7,大家有興趣可以下載一個試用一下,也可以在網(wǎng)搜搜索一些“特別”版本。
二、系統(tǒng)設(shè)計(jì)階段:
第一、系統(tǒng)設(shè)計(jì)工具
主 流的系統(tǒng)設(shè)計(jì)工具有大家非常熟悉的Rose2003,不過,現(xiàn)在已經(jīng)不叫Rose了,現(xiàn)在IBM最新的設(shè)計(jì)工具是RSA(Ration Software Architect),Borland Together,SyBase PowerDesinger,MicroSoft Visio,對于開源的系統(tǒng)設(shè)計(jì)工具也有很多,比如ArgoUML、DBDesigner等等。
RSA(http://www.ibm.com ):IBM 最新的設(shè)計(jì)工具,它是一個基于Eclipse平臺的一個工具,對于你使用RSA,那也許你會將你的整個團(tuán)隊(duì)的工具都采用IBM的整套解決方案,使用 RequisitePro來進(jìn)行需求管理、使用RSA來進(jìn)行建模、使用ClearCase來進(jìn)行配置管理、使用ClearQuest來進(jìn)行缺陷跟蹤、使用 RFT(Rational Functional Tester)來進(jìn)行測試……RSA有一個最大的優(yōu)點(diǎn),那就是跟Word結(jié)合得非常好。這一點(diǎn)可以肯定。
Together(http://www.borland.com ):Borland 公司的NB的設(shè)計(jì)工具,Together 2006版本也是一個基于Eclipse平臺的軟件,功能也是非常強(qiáng)大,其所見所得的功能,是我非常喜歡它的一個原因。還有一個原因就是基于 Eclipse平臺,這個可以跟我的開發(fā)工具很完美地整合在一起。不過,整合要注意一個問題,那就是Eclipse兼容性問題,這一點(diǎn)是非常煩人的。
PowerDesigner(http://www.sybase.com ): PowerDesigner是“一站式”建模與設(shè)計(jì)解決方案,物理數(shù)據(jù)模型的數(shù)據(jù)庫平臺無關(guān)性,所見即所得,反向工程,報表生成等等功能,使得它成為數(shù)據(jù) 庫設(shè)計(jì)人員心目中最好的產(chǎn)品,它的易用性深深地吸引了我!特別它的Repository模型庫的功能,更讓我們實(shí)現(xiàn)了模型設(shè)計(jì)的版本控制。最新的 PowerDesigner,使得我覺得它是一件藝術(shù)品。做設(shè)計(jì)的人員一般會使用PowerDesigner來進(jìn)行數(shù)據(jù)庫物理模型設(shè)計(jì),它是我心目中的首 選工具。之前曾經(jīng)對比過RSA、Together、ERWin的數(shù)據(jù)庫模型設(shè)置工具,最終我還是更加喜歡使用PowerDesigner,也許,我的操作 習(xí)慣已經(jīng)被PowerDesigner腐蝕。
第二、開發(fā)的技術(shù)框架
技術(shù)框架的選擇是非常關(guān)鍵,一個好的技術(shù)框架,可以讓我們的開發(fā)更加快速、團(tuán)隊(duì)的分工更加合理、系統(tǒng)能夠支持多種數(shù)據(jù)庫平臺、我們的維護(hù)更加方便。
Web前端MVC框架是Struts 2。Struts 2可以說是Struts穿上了WebWork的外衣,其內(nèi)核大部分都是采用了WebWork的技術(shù),并且基于AOP的設(shè)計(jì)思想,讓我們在軟件設(shè)計(jì)上的能夠更加多地體現(xiàn)“高內(nèi)聚,低耦合”的設(shè)計(jì)思想。
J2EE框架是Spring,作為一個開源的J2EE框架,雖然它沒有太多的新技術(shù)點(diǎn),但它的整合性,拿得我們的開發(fā)更加簡單,IOC、AOP、事務(wù)處理、開源框架的整合支持等等,使得作為一個J2EE框架的首選。
持久層框架是Hibernate, 作為一個開源的項(xiàng)目,我想,沒有一個開源項(xiàng)目的社區(qū)能夠你Hibernate一樣,豐富的文檔,活躍的社區(qū),基于Hibernate的開發(fā)團(tuán)隊(duì)的龐大,使 得它作為持久層框架的首先。基于 Hibernate,我們可以開發(fā)出數(shù)據(jù)庫平臺無關(guān)性的產(chǎn)品。但是,Hibernate也有自身的問題,假如使用不當(dāng),也許會有所失控,一旦失控,它所帶 來的,就是性能問題。對于最新的Hibernate3,存儲過程的支持,外部SQL的定制,很好地解決了這個問題。但在關(guān)聯(lián)關(guān)系上,使用還是要小心為好。
頁面框架,可以多考慮使用DIV技術(shù)、JSTL標(biāo)簽庫、Struts 2標(biāo)簽庫、DWR、AJAX、XML+XSLT等技術(shù)來讓我們頁面更好維護(hù),使用OSCache緩存技術(shù)來提高我們頁面的訪問速度。
第三、開發(fā)規(guī)范的定制
文件命名規(guī)范、數(shù)據(jù)庫設(shè)計(jì)規(guī)范、編碼規(guī)范、團(tuán)隊(duì)協(xié)作規(guī)定等等一些規(guī)范性的東西,需要在系統(tǒng)開發(fā)前就規(guī)定好,并且做相應(yīng)的培訓(xùn)。QA也要做好監(jiān)督的作用,定期做評審工作,對已發(fā)生的問題及可能出現(xiàn)的問題,及早發(fā)現(xiàn),及早處理。
第四、開發(fā)工具的選擇
團(tuán) 隊(duì)一定要選擇同樣的開發(fā)工具,開發(fā)工具相同,軟件版本相同。為什么要這樣子做,其實(shí)假如你作為一個Team Leader,你會在管理你的團(tuán)隊(duì)的時候發(fā)現(xiàn)很多問題,而解決這個問題,那在項(xiàng)目編碼前,就把什么東西都規(guī)定好,以免其中發(fā)生問題,影響整個團(tuán)隊(duì)的開發(fā)速 度。開發(fā)工具的選擇也是非常重要的,目前企業(yè)用得比較多的開發(fā)工具有:Eclipse、Jbuilder、NetBeans、IDEA。
Jbuilder: 最新的Jbuilder版本是2007,2007版基本上可以算是重新開發(fā)的版本,因?yàn)樗腔贓clipse之上的。我算是Borland公司最為忠實(shí) 的Fans啦,從Jbuilder6,到Jbuilder7,再到Jbuilder8,再到Jbuilder9、Jbuilder X,Jbuilder 2005,Jbuilder 2006,我經(jīng)常跟我學(xué)生說,對于Jbuilder,相信沒有人比我更熟悉他了,做Java開發(fā)接近6年時間,超過4年的時間,每天都都在使用的工 具,Jbuilder見證了我的長成。使用過Jbuilder的人很多人知道一點(diǎn),就是Jbuilder的盜版問題,安裝完Jbuilder之后,假如你 一個不小心,沒有安裝防火墻,那Jbuilder會不時通過8888端口向Borland總部發(fā)送一些你的計(jì)算機(jī)信息,這個是一種非常可怕的“木馬”,什 么是“木馬”?這個就是!這種情況自從Jbuilder X以后就一直有。假如你不怕Borland公司的人跟工商局過來查你公司的軟件的話,那選擇Jbuilder是一個不錯的選擇。作為Java IDE開發(fā)平臺的老大,Jbuilder在企業(yè)應(yīng)用開發(fā)是非常有優(yōu)勢的,特別是開發(fā)EJB跟WebService,偶只能用一個句來形容,那就是牛。 Jbuilder 2007,王者歸來,相信對于很多Borland的Fans,還是非常喜歡并樂意去嘗試的,不過,價格還是會讓很多公司都受不了、速度會讓很多程序員也受 不了。我的Jbuilder的緣分到2006就基本上已經(jīng)結(jié)束了。現(xiàn)在我的開發(fā)環(huán)境基本上都是Eclipse。
Eclipse:IBM捐出來的好東西,發(fā)展挺快的,現(xiàn)在已經(jīng)到了Eclipse3.3,非常好用的一個工具。但Eclipse只是一個基礎(chǔ)平臺,假如你需要其他的功能,那你需要下載相關(guān)的插件進(jìn)行擴(kuò)展,下載的插件要注意一下跟Eclipse平臺的兼容性問題。Eclipse+MyEclipse(http://www.myeclipseide.com )是個是很多WEB開發(fā)人員都是在采用的一個整合工具,但MyEclipse要錢,如果公司愿意為此支付29.9美元的話,那它是一個非常好的選擇;比MyEclipse更上一個檔次的還有Exadel(http://www.exadel.com/web/portal/home ),不過,價格貴得離譜,因?yàn)樗旧砭褪且患易稍兎?wù)公司做出來,主要還是靠咨詢服務(wù),培訓(xùn)掙錢,并且,運(yùn)行時的不穩(wěn)定,也讓我放棄了選擇這個插件作為我的開發(fā)工具,雖然這個工具真的是很強(qiáng)大。Eclipse+WTP(http://www.eclipse.org )也是一個非常好的免費(fèi)的開發(fā)工具,從eclipse官方網(wǎng)站上可以下載WTP跟Eclipse整合在一起的工具,現(xiàn)在教學(xué)基本上用這個。Lomboz(http://lomboz.objectweb.org/ ) 也是一個非常好用的免費(fèi)J2EE插件,學(xué)生用的很多,因?yàn)楹孟裼胁簧贂际怯眠@個進(jìn)行教學(xué)的。通過插件來的擴(kuò)展本來是一件好事,但當(dāng)它的版本問題?兼容性 問題?安全性問題?語言問題?出現(xiàn)的時候,你就會罵著,為什么不提供一站式開發(fā)平臺呢?如果你下載了語言包,你會發(fā)現(xiàn),有些地方是中文的,有些地方是英文 的,極其丑陋!也許,Eclipse作為一個基礎(chǔ)平臺,它確實(shí)是太基礎(chǔ)了。但現(xiàn)在,我們也可以下載一些All-In-One版本的Eclipse,但個人 感覺還是不夠,很多功能,我們還需要去找插件來進(jìn)行擴(kuò)展。也許,Eclipse的決策者認(rèn)為,作為基礎(chǔ)平臺,肯定是越簡單越好,需要什么就加什么,這樣, 資源占用會更少。正如東方標(biāo)準(zhǔn)最咨深的平面老師曾宇飛講過一句話:你會去麥當(dāng)勞點(diǎn)酸菜魚吃嗎?
NetBeans: 作為Sun公司出品的開發(fā)工具,功能一樣也是非常強(qiáng)大,不管你是做應(yīng)用程序開發(fā)還是做應(yīng)用系統(tǒng)開發(fā),NetBeans都是一個不錯的選擇。 NetBeans也跟Eclispe一樣,也是一個基礎(chǔ)平臺,但這個基礎(chǔ)平臺做得比Eclipse強(qiáng)大很多,基本上你下載一個NetBeans就可以開發(fā) 應(yīng)用程序或J2EE應(yīng)用系統(tǒng)了。并且,NetBeans的中文支持非常好,基本上一個新版本出來,就已經(jīng)有中文版、英文版跟日語版了。看 來,NetBeans的決策者還是比較看好這些人群的。NetBeans的Mobile插件開發(fā)J2ME是最快最好用的,至少我個人這么認(rèn)為。開發(fā) J2ME應(yīng)用產(chǎn)品,我首選的就是NetBeans。目前NetBeans已經(jīng)發(fā)展到6.0的版本了,界面非常華麗,有興趣的朋友可以下載一個玩一下。 NetBeans的下載地址是:http://www.netbeans.org 。
IDEA: 對于IDEA的評價,我只能用六個字來形容,那就是:實(shí)用的藝術(shù)品。它非常好用,界面非常華麗,相當(dāng)如果你是一個女性的項(xiàng)目經(jīng)理或技術(shù)牛人,你會喜歡上這 件藝術(shù)器的。IDEA開發(fā)應(yīng)用程序非常強(qiáng)大,這一點(diǎn)絕對可以肯定。官方提供的插件也非常豐富,當(dāng)你需要那一方面的功能,基本上都可以找得到,找插件,你只 需要在官方插件庫里面去找就可以了,并且自動安裝,自動更新。作為2003年拿到JavaWorld大將的一個作品,相信,它可以帶來很多IDEA的創(chuàng) 新。它是屬于商業(yè)化的工具,價格也只有499美元,而個人買也就249美元,如果你愿意犧牲某些功能,那你完全可以下載一個免費(fèi)的版本。價格方面,個人覺 得完全對得起這件藝術(shù)品價值。有興趣的話可以下載一個試用版玩一下:http://www.jetbrains.com/idea ,小聲地說,上一下baidu,插件一下,其實(shí)你可以找到很多注冊號。
Ant是apache的一個開源項(xiàng)目,可以從Ant官方網(wǎng)站上下載一個最新的版本:http://ant.apache.com 。雖然該項(xiàng)目雖然現(xiàn)在發(fā)展變得非常緩慢,但可以非常肯定地講,它是一個好東西。我們可以使用ant來對我們整個工程進(jìn)行編譯,打包,單元測試,部署等等,基本上你想得到的東西,Ant可以幫你做得到。Maven(http://maven.apache.com ) 是一人比Ant還要強(qiáng)大的工具,現(xiàn)在大有Maven將會代替Ant的趨勢,Maven也是項(xiàng)目經(jīng)理要關(guān)注的一個技術(shù)點(diǎn)。基本上現(xiàn)在主流的開發(fā)工具都提供共 了對Ant的支持,有些甚至是依賴,比如:NetBeans,你在NetBeans當(dāng)中創(chuàng)建一個新的工程,那系統(tǒng)會自動地創(chuàng)建一個ant的運(yùn)行腳本程序。 對于你進(jìn)行編譯、打包、發(fā)布,那完全都是依賴于這個ant腳本。我們可以使用Ant來開發(fā)一個DailyBuild(微軟叫每日產(chǎn)品生成,XP叫持久集 成)的流程,來提高我們整個團(tuán)隊(duì)的軟件開發(fā)質(zhì)量。Ant的使用非常簡單,多看手冊,多花點(diǎn)心思,那你會做得更好。
三、開發(fā)階段
第一、配置管理工具
代碼管理工具有很多,現(xiàn)在公司用得比較多的代碼管理工具有CVS、VSS、SVN。
對 于一個開發(fā)團(tuán)隊(duì)只有2-5個人,并且這兩三個人是同一間辦公室里,那使用VSS是一個非常不錯的選擇,個人覺得他小團(tuán)隊(duì)的管理方面非常好用。個人覺得 VSS唯一的缺點(diǎn)就是一個文件當(dāng)被一個人鎖定,那其他人就沒有辦法進(jìn)行修改了,當(dāng)一個文件為多個人所共用且開發(fā)團(tuán)隊(duì)人數(shù)較多時,這種問題將會顯示非常嚴(yán) 重。VSS客戶端跟服務(wù)器你都可以從Visio Studio里面找到。
Eclipse的VSS客戶端插件:http://vssplugin.sourceforge.net/
對于一個開發(fā)團(tuán)隊(duì)有超過5個人,那此如選擇CVS或SVN將是一個更好的選擇,并且,假如你的團(tuán)隊(duì)是分散的,可能不在一間辦公室或者根本不在同一個城市,那使用CVS或SVN是一個非常更想的選擇。CVS的服務(wù)器一般是使用CVSNT或CVSServer。
CVSServer:
Linux for X86:http://ftp.gnu.org/non-gnu/cvs/binary/stable/x86-linux/RPMS/i386/
Window for X86:http://ftp.gnu.org/non-gnu/cvs/binary/stable/x86-woe/
CVSNT:http://www.cvsnt.org/
CVSClient:
WinCVS:http://www.wincvs.org
TortoiseCVS:http://www.tortoisecvs.org/
JBuilder、Eclipse、NetBeans、IDEA集成的CVS客戶端
作 為版本管理工具,CVS出現(xiàn)至今,已經(jīng)有二十個年頭,可以說他已經(jīng)走到了盡頭,但可以肯定,它將繼續(xù)存在著。SVN是作為CVS的代替產(chǎn)品而出現(xiàn)的。現(xiàn)在 很多開源組織,都慢慢地轉(zhuǎn)到SVN上,比如Apache跟SourceForge。SVN有著比CVS更強(qiáng)大的功能,比如,它可記錄目錄的更改,它的性能 比CVS會快很多等等。目前SVN慢慢地被企業(yè)所接受,但個人覺得其Eclipse的客戶端的穩(wěn)定性還有待提高,也許這個跟Eclipse的版本兼容性有 一定關(guān)系。但這些不穩(wěn)定性,讓我現(xiàn)在對這個產(chǎn)品的使用還繼續(xù)停留在試用的階段。
SVNServer:http://subversion.tigris.org/
SVNClient:
TortoiseSVN :http://tortoisesvn.net/
Eclipse插件:http://subclipse.tigris.org/
目前SVN插件支持包括Eclipse、Jdeveloper、NetBeans等開發(fā)工具。
第二、知識庫管理工具
團(tuán) 隊(duì)每一個人在開發(fā)的時候都會發(fā)現(xiàn)一些問題,最終,有些問題可能沒有辦法解決,有些問題可以解決。一般情況,大部分問題經(jīng)過團(tuán)隊(duì)成員的共同努力,都是可以解 決的,那解決問題的方法,解決問題的步驟,這些都應(yīng)該形成知識。作為一個團(tuán)隊(duì)的Leader,我們必須重視這些知識,因?yàn)椋@些知識非常有用,它對于一些 新手或沒有遇到此類問題的同事,能夠提供相應(yīng)的幫助。
Confluence(http://www.atlassian.com/software/confluence ),跟JIRA來自同一家公司的產(chǎn)品,它跟JIRA可以整合得非常好。我們可以通過JIRA的ISSUE,將該ISSUE上升為一個知識。假如你是使用 JIRA來進(jìn)行項(xiàng)目管理跟缺陷管理,那使用Confluence是一個最佳選擇。
PHPBB(http://www.phpbb.com ), 論壇其實(shí)也是一個非常好的知識庫管理工具,當(dāng)某一個工程師遇到一些疑難雜癥的時候,最終,通過自己的努力或團(tuán)隊(duì)其他同事的努力,終于解決問題了。那作為 Leader的你,應(yīng)該鼓勵他們將這些知識,寫一些文章,然后發(fā)布在公司自己的BBS上。供大家參考及討論。這個是一種很好的方法。記得我以前,我在網(wǎng)上 看到一些有用的信息,我就把它保存在我本機(jī)的PHPBB上。只可憐,后來電腦被人偷了。賊郁悶。
四、軟件測試階段
第一、缺陷管理工具
軟 件你不能保證它永遠(yuǎn)不會錯,只是,有些錯誤你暫時還沒有發(fā)現(xiàn)而已;有些錯誤需要在某些特定的環(huán)境下它才會發(fā)生。就像Windows,時不時會有一些系統(tǒng)更 新文件要求更新。可能這些更新不是錯誤,只是一些系統(tǒng)安全方面的隱患。這些都可以算是軟件系統(tǒng)的缺陷。那這些缺陷我們應(yīng)該怎么進(jìn)行管理?怎么進(jìn)行跟蹤呢? 現(xiàn)在缺陷管理用得比較多的有兩個:第一個是開源的bugzilla,另一個是商業(yè)的JIRA。
Bugzilla(http://www.bugzilla.org ), 作為開源界缺陷管理系統(tǒng)的鼻祖,它發(fā)展到現(xiàn)在已從98年到現(xiàn)在經(jīng)有10的時間了。它的開發(fā)語言是Perl,這使得它的安裝變得很麻煩,Bugzilla可 以安裝在Windows、Linux、Unix等操作系統(tǒng)上。現(xiàn)在的Eclipse也提供了對它的支持,我們可以在Eclispe平臺上,找到應(yīng)用系統(tǒng)的 BUG,功能做得非常強(qiáng)大。如果安裝能更加輕松一點(diǎn),或者提供一個All-In-One版本,那會更好!
JIRA,作為商為上化的缺陷管理系統(tǒng),JIRA的價格對得起它的功能。JIRA不只是一個缺陷管理系統(tǒng),它更是一個集項(xiàng)目管理、缺陷管理、統(tǒng)計(jì)分析為一身的工具。這個工具我一直在使用,只是使用一些“特別”版本而已。
第二、軟件性能監(jiān)測工具
Jprofiler(http://www.ej-technologies.com )是一個非常好的性能監(jiān)測工具,使用這個工具,你可以快速發(fā)現(xiàn)系統(tǒng)那些模塊出現(xiàn)性能瓶頸或算法導(dǎo)致的性能問題;它還可以分析內(nèi)存泄漏的問題。這個工具也提供了相應(yīng)的Eclipse插件,讓你開發(fā)更加快速方便。它支持主流的服務(wù)器。
Borland Optimizeit Suite(http://www.borland.com )也是一個非常好的性能監(jiān)測工具,它跟Borland產(chǎn)品整合得非常好。不過,運(yùn)行這個工具,你最好準(zhǔn)備一下,最好有2G內(nèi)存,否則,本來系統(tǒng)好好的,一運(yùn)行起來,你機(jī)器反而死掉了。
第三、軟件性能測試工具
Ant+Windows計(jì)劃任務(wù)創(chuàng)建公司的DailyBuild自動化測試流程,這個是以前做的一個測試流程。使用這種測試流程,無非一個目的,就是提高公司的軟件質(zhì)量。
Jmeter(http://jakarta.apache.org/jmeter ),這個工具是apache出品的,作為apache忠實(shí)的Fans,我對Jmeter也是很喜歡,使用Jmeter,你可以摸似多用戶環(huán)境,對應(yīng)用系統(tǒng)進(jìn)行測試,測試整個應(yīng)用系統(tǒng)能夠承受的最大并發(fā)量。
LoadRunner(http://www.hp.com ),假如你不知道這個軟件,那你肯定做不了測試工程師,這個是最專業(yè)的一個軟件性能測試工具,它可以模似上千萬個用戶量來進(jìn)行壓力測試,檢測系統(tǒng)能夠承受的最大并發(fā)量。這個軟件我只用過幾次,編寫腳本,進(jìn)行測試,使用來講其實(shí)算是比較簡單。
五、軟件發(fā)布
軟 件的發(fā)布我們會怎么去做呢?我們一般做法就是,將數(shù)據(jù)庫腳本化,包括建表語句、初始化數(shù)據(jù)等,還有制作WAR文件或EAR文件。然后到客戶那邊,我們需要 將數(shù)據(jù)庫表及數(shù)據(jù)進(jìn)行初始化,接著,將WAR或EAR文件發(fā)布到應(yīng)用服務(wù)器上。這個也許是我們到客戶現(xiàn)在發(fā)布經(jīng)常在做的一件事情。那能不能做得更加簡單 呢?做法一般有兩個,第一個就是使用Ant,編寫一個初始化數(shù)據(jù)庫跟發(fā)布應(yīng)用程序模塊的Ant腳本,然后到生產(chǎn)機(jī)上直接運(yùn)行該腳本即可;第二個就是制作安 裝文件,一般用來制作安裝文件的有IzPack,這個是用得最多的一個免費(fèi)工具,你可以使用這個免費(fèi)工具來制作安裝程序。也許客戶都習(xí)慣了安裝程序的安裝 方式了,制作一個可執(zhí)的安裝程序,有助于提高軟件產(chǎn)品化的檔次。
六、軟件維護(hù)階段
第一、客戶CASE跟蹤管理工具
客 戶CASE跟蹤系統(tǒng)相信很多做CISCO公司金牌代理的人都會用過。我們必須在公司內(nèi)部建立相應(yīng)的CASE跟蹤制度。當(dāng)用戶使用系統(tǒng)的時候,發(fā)現(xiàn)一些問 題,那我們需要對這些問題進(jìn)行錄入并進(jìn)行跟蹤。像客戶呼叫服務(wù)系統(tǒng)等等一些商業(yè)化的軟件外面還是很多的,這些系統(tǒng)其實(shí)公司自己開發(fā)一個也是很快的。但必須 要有。這個也是提高整個公司整體服務(wù)形象的一種態(tài)度。
ExtJS教程- Hibernate教程-Struts2 教程-Lucene教程
一直想寫一篇這樣的總結(jié)性文章,但不是沒有時間就是沒有勇氣寫下去,因?yàn)榕聞e人丟臭雞蛋。這兩天有時間,終于鼓起勇氣,將這篇文章寫來下!也希望對一些正在尋找更好發(fā)展的朋友能有點(diǎn)幫助,也希望對于一些技術(shù)跟管理方面的牛人,能給予一些建議。
作為一名項(xiàng)目經(jīng)理、系統(tǒng)架構(gòu)師或技術(shù)骨干,其水平如何,關(guān)系到公司的項(xiàng)目管理、軟件質(zhì)量管理等方面的問題。項(xiàng)目經(jīng)理或技術(shù)骨干應(yīng)該要起帶頭作用,使整個團(tuán)隊(duì)的開發(fā)及管理能達(dá)到一種更高的水平。
那 作為一名項(xiàng)目經(jīng)理或公司技術(shù)骨干應(yīng)該學(xué)會那些工具及知識點(diǎn)呢?涉及到這一塊的工具及技術(shù)點(diǎn)非常多,如何去選擇,是擺在項(xiàng)目經(jīng)理、系統(tǒng)架構(gòu)師跟技術(shù)骨干面前 的問題。根據(jù)公司及團(tuán)隊(duì)的情況,選擇合適的工具或技術(shù)框架,這一點(diǎn)非常重要。在項(xiàng)目的不同階段,需要有不同的工具來支持。
按照軟件系統(tǒng)的生命周期的六個階段,一般分為需求分析階段、系統(tǒng)設(shè)計(jì)階段、系統(tǒng)開發(fā)階段、軟件測試階段、系統(tǒng)發(fā)布階段、系統(tǒng)維護(hù)階段,這幾個階段都需要有不同工具的支持。
一、需求分析階段:
第一、項(xiàng)目管理及需求管理工具
項(xiàng) 目管理工具很多公司都在使用,為什么要使用這些工具?假如沒有使用這些工具,而是使用Excel或Word進(jìn)行記錄,那當(dāng)需求變更?需求實(shí)現(xiàn)情況的跟蹤? 軟件是否能按時交付?將是一件非常煩鎖且容易出錯的事情。一個軟件項(xiàng)目、開發(fā)團(tuán)隊(duì)能否獲得成功,管理非常關(guān)鍵。比較有名的商業(yè)化工具有:MicroSoft Project Server及Project 2003、IBM Rational RequisitePro、JIRA、PowerDesinger。比較有名的開源需求管理工具包括:OSRMT(Open Source Requirements Management Tools)、Xplanner、Openworkbench等等。
很多軟件公司都會使用SharePoint,在SharePoint平臺上,只要你想得到,基本上都可以通過配置方式來滿足你的業(yè)務(wù)需求。在SharePoint上,可以跟MicroSoft Project Server很好的結(jié)合,再配置Project 2003為客戶端,進(jìn)行公司的項(xiàng)目管理。也許對Project操作習(xí)慣的問題,在Web界面進(jìn)行項(xiàng)目管理的時候,總覺得很不方便。
IBM Rational RequisitePro(http://www.ibm.com )可以算是最骨灰級的一個軟件了,假如你公司整個軟件生命周期管理都是采用IBM的解決方案,那使用RequisitePro是一個非常好的解決方案。需要這些軟件可以到IBM官方網(wǎng)站上去下載一個最新版本,或者在電驢上面下載一些“特別”版本。設(shè)計(jì)工具、管理工具的完美結(jié)合,這個正是IBM Rational RequisitePro的強(qiáng)項(xiàng)。RequisitePro跟Offce結(jié)合得也是非常完美。
JIRA(http://www.atlassian.com )原來只是一個缺陷跟蹤系統(tǒng),你可以在JIRA上面創(chuàng)建新的ISSUE,當(dāng)ISSUE分配給某個程序員時,系統(tǒng)會自動發(fā)送一封郵件給該程序員,提示有新的BUG。JIRA也有提供一個Eclipse插件,你可以在Eclipse上面,查到屬于自己的ISSUE,并快速解決。現(xiàn)在JIRA也可以用來做項(xiàng)目管理,在操作方面非常人性化,個人一直非常喜歡使用JIRA來進(jìn)行項(xiàng)目管理、缺陷管理,再結(jié)合Eclipse,簡直就是完美!但作為商業(yè)的軟件,價格也非常貴,互聯(lián)網(wǎng)上也有很多Crack,大家有興趣也可以搜一下。
OSRMT(http://sourceforge.net/projects/osrmt )是一個開源的需求管理工具,分為客戶端跟服務(wù)器,也提供了一個安裝界面供用戶安裝,做開源的已經(jīng)算是做得非常完美了。當(dāng)前最新版本是V1.5,有興趣的朋友可以下載一個最新版本玩一下,操作還算是挺人性化的。
Xplanner(http://www.xplanner.org )是一個開源的,基于XP編程的項(xiàng)目管理軟件,它可以幫我們生成一些統(tǒng)計(jì)圖表。這個軟件從06年底發(fā)布0.7b7版后,就再也沒有更新過了,我對開源工具的看法就是:版本號沒有超過1.0版,我都不會應(yīng)用于生產(chǎn)!對于Xplanner,也是停留在試用的階段。
Openworkbench(http://www.openworkbench.org ) 也是一個開源的項(xiàng)目管理軟件,其功能跟Project 2003相似,是一個值得大家去使用的一個工具,但對于中國很多軟件公司,都是使用特別版的Project 2003。假如你很尊重版權(quán),又不想使用Project 2003,那Openworkbench是一個非常好的選擇。
第二、需求分析工具
需求分析工具用得比較多可能就是Rational Rose、MicroSoft Visio或MindManager,一般我們使用Rational Rose來進(jìn)行用例分析,畫用例圖,畫狀態(tài)圖;使用MicroSoft Visio來畫出應(yīng)用系統(tǒng)的結(jié)構(gòu)圖、流程圖等。當(dāng)然,對于MicroSoft Visio能畫出來的東西,其實(shí)Rose也一樣可以實(shí)現(xiàn),只是,大家都是這么干,我們也沒有必要專門去做一些特例的東西,特別是對于一些比較特殊的公司及行業(yè)。
Ration Rose 2003是 一個值得懷念的工具,至今還是有很多公司跟個人都是使用,個人覺得這個軟件版本算是最經(jīng)典的一個,但對于現(xiàn)在所見即所得的要求下,使用Rose 2003,可能沒有辦法滿足你,因?yàn)樗枰?jīng)過一些小操作才能滿足你的要求。但不可否認(rèn),它是一個非常優(yōu)秀的軟件。現(xiàn)在對于一些喜歡使用新工具新技術(shù)的程 序員,也許現(xiàn)在他們正在使用RSA。
MicroSoft Visio(http://www.microsoft.com )是每個搞設(shè)計(jì)的人都會用的一個工具,我們一般使用Visio來畫系統(tǒng)結(jié)構(gòu)圖、關(guān)鍵流程圖、系統(tǒng)部署結(jié)構(gòu)圖等。MicroSoft Visio也提供了UML的功能,可以用它來畫用例圖、類圖、狀態(tài)圖,時序圖等,但一般這個功能很少使用。至少我基本上不用。
MindManager(http://www.mindjet.com ) 是一個非常好用的工具,我們用來描述我們的思維,很多人都不喜歡通過軟件來描述,而是通過一張紙,然后在上面進(jìn)行涂鴉,接著跟客戶或團(tuán)隊(duì)進(jìn)行思維溝通。 MindManager很好地解決了這個問題。MindManager跟Office結(jié)合得非常完美,可以生成Word、Excel、PDF等文件。這個 工具是我一直在使用的一個軟件,非常好用。最新版本為7,大家有興趣可以下載一個試用一下,也可以在網(wǎng)搜搜索一些“特別”版本。
二、系統(tǒng)設(shè)計(jì)階段:
第一、系統(tǒng)設(shè)計(jì)工具
主 流的系統(tǒng)設(shè)計(jì)工具有大家非常熟悉的Rose2003,不過,現(xiàn)在已經(jīng)不叫Rose了,現(xiàn)在IBM最新的設(shè)計(jì)工具是RSA(Ration Software Architect),Borland Together,SyBase PowerDesinger,MicroSoft Visio,對于開源的系統(tǒng)設(shè)計(jì)工具也有很多,比如ArgoUML、DBDesigner等等。
RSA(http://www.ibm.com ):IBM 最新的設(shè)計(jì)工具,它是一個基于Eclipse平臺的一個工具,對于你使用RSA,那也許你會將你的整個團(tuán)隊(duì)的工具都采用IBM的整套解決方案,使用 RequisitePro來進(jìn)行需求管理、使用RSA來進(jìn)行建模、使用ClearCase來進(jìn)行配置管理、使用ClearQuest來進(jìn)行缺陷跟蹤、使用 RFT(Rational Functional Tester)來進(jìn)行測試……RSA有一個最大的優(yōu)點(diǎn),那就是跟Word結(jié)合得非常好。這一點(diǎn)可以肯定。
Together(http://www.borland.com ):Borland 公司的NB的設(shè)計(jì)工具,Together 2006版本也是一個基于Eclipse平臺的軟件,功能也是非常強(qiáng)大,其所見所得的功能,是我非常喜歡它的一個原因。還有一個原因就是基于 Eclipse平臺,這個可以跟我的開發(fā)工具很完美地整合在一起。不過,整合要注意一個問題,那就是Eclipse兼容性問題,這一點(diǎn)是非常煩人的。
PowerDesigner(http://www.sybase.com ): PowerDesigner是“一站式”建模與設(shè)計(jì)解決方案,物理數(shù)據(jù)模型的數(shù)據(jù)庫平臺無關(guān)性,所見即所得,反向工程,報表生成等等功能,使得它成為數(shù)據(jù) 庫設(shè)計(jì)人員心目中最好的產(chǎn)品,它的易用性深深地吸引了我!特別它的Repository模型庫的功能,更讓我們實(shí)現(xiàn)了模型設(shè)計(jì)的版本控制。最新的 PowerDesigner,使得我覺得它是一件藝術(shù)品。做設(shè)計(jì)的人員一般會使用PowerDesigner來進(jìn)行數(shù)據(jù)庫物理模型設(shè)計(jì),它是我心目中的首 選工具。之前曾經(jīng)對比過RSA、Together、ERWin的數(shù)據(jù)庫模型設(shè)置工具,最終我還是更加喜歡使用PowerDesigner,也許,我的操作 習(xí)慣已經(jīng)被PowerDesigner腐蝕。
第二、開發(fā)的技術(shù)框架
技術(shù)框架的選擇是非常關(guān)鍵,一個好的技術(shù)框架,可以讓我們的開發(fā)更加快速、團(tuán)隊(duì)的分工更加合理、系統(tǒng)能夠支持多種數(shù)據(jù)庫平臺、我們的維護(hù)更加方便。
Web前端MVC框架是Struts 2。Struts 2可以說是Struts穿上了WebWork的外衣,其內(nèi)核大部分都是采用了WebWork的技術(shù),并且基于AOP的設(shè)計(jì)思想,讓我們在軟件設(shè)計(jì)上的能夠更加多地體現(xiàn)“高內(nèi)聚,低耦合”的設(shè)計(jì)思想。
J2EE框架是Spring,作為一個開源的J2EE框架,雖然它沒有太多的新技術(shù)點(diǎn),但它的整合性,拿得我們的開發(fā)更加簡單,IOC、AOP、事務(wù)處理、開源框架的整合支持等等,使得作為一個J2EE框架的首選。
持久層框架是Hibernate, 作為一個開源的項(xiàng)目,我想,沒有一個開源項(xiàng)目的社區(qū)能夠你Hibernate一樣,豐富的文檔,活躍的社區(qū),基于Hibernate的開發(fā)團(tuán)隊(duì)的龐大,使 得它作為持久層框架的首先。基于 Hibernate,我們可以開發(fā)出數(shù)據(jù)庫平臺無關(guān)性的產(chǎn)品。但是,Hibernate也有自身的問題,假如使用不當(dāng),也許會有所失控,一旦失控,它所帶 來的,就是性能問題。對于最新的Hibernate3,存儲過程的支持,外部SQL的定制,很好地解決了這個問題。但在關(guān)聯(lián)關(guān)系上,使用還是要小心為好。
頁面框架,可以多考慮使用DIV技術(shù)、JSTL標(biāo)簽庫、Struts 2標(biāo)簽庫、DWR、AJAX、XML+XSLT等技術(shù)來讓我們頁面更好維護(hù),使用OSCache緩存技術(shù)來提高我們頁面的訪問速度。
第三、開發(fā)規(guī)范的定制
文件命名規(guī)范、數(shù)據(jù)庫設(shè)計(jì)規(guī)范、編碼規(guī)范、團(tuán)隊(duì)協(xié)作規(guī)定等等一些規(guī)范性的東西,需要在系統(tǒng)開發(fā)前就規(guī)定好,并且做相應(yīng)的培訓(xùn)。QA也要做好監(jiān)督的作用,定期做評審工作,對已發(fā)生的問題及可能出現(xiàn)的問題,及早發(fā)現(xiàn),及早處理。
第四、開發(fā)工具的選擇
團(tuán) 隊(duì)一定要選擇同樣的開發(fā)工具,開發(fā)工具相同,軟件版本相同。為什么要這樣子做,其實(shí)假如你作為一個Team Leader,你會在管理你的團(tuán)隊(duì)的時候發(fā)現(xiàn)很多問題,而解決這個問題,那在項(xiàng)目編碼前,就把什么東西都規(guī)定好,以免其中發(fā)生問題,影響整個團(tuán)隊(duì)的開發(fā)速 度。開發(fā)工具的選擇也是非常重要的,目前企業(yè)用得比較多的開發(fā)工具有:Eclipse、Jbuilder、NetBeans、IDEA。
Jbuilder: 最新的Jbuilder版本是2007,2007版基本上可以算是重新開發(fā)的版本,因?yàn)樗腔贓clipse之上的。我算是Borland公司最為忠實(shí) 的Fans啦,從Jbuilder6,到Jbuilder7,再到Jbuilder8,再到Jbuilder9、Jbuilder X,Jbuilder 2005,Jbuilder 2006,我經(jīng)常跟我學(xué)生說,對于Jbuilder,相信沒有人比我更熟悉他了,做Java開發(fā)接近6年時間,超過4年的時間,每天都都在使用的工 具,Jbuilder見證了我的長成。使用過Jbuilder的人很多人知道一點(diǎn),就是Jbuilder的盜版問題,安裝完Jbuilder之后,假如你 一個不小心,沒有安裝防火墻,那Jbuilder會不時通過8888端口向Borland總部發(fā)送一些你的計(jì)算機(jī)信息,這個是一種非常可怕的“木馬”,什 么是“木馬”?這個就是!這種情況自從Jbuilder X以后就一直有。假如你不怕Borland公司的人跟工商局過來查你公司的軟件的話,那選擇Jbuilder是一個不錯的選擇。作為Java IDE開發(fā)平臺的老大,Jbuilder在企業(yè)應(yīng)用開發(fā)是非常有優(yōu)勢的,特別是開發(fā)EJB跟WebService,偶只能用一個句來形容,那就是牛。 Jbuilder 2007,王者歸來,相信對于很多Borland的Fans,還是非常喜歡并樂意去嘗試的,不過,價格還是會讓很多公司都受不了、速度會讓很多程序員也受 不了。我的Jbuilder的緣分到2006就基本上已經(jīng)結(jié)束了。現(xiàn)在我的開發(fā)環(huán)境基本上都是Eclipse。
Eclipse:IBM捐出來的好東西,發(fā)展挺快的,現(xiàn)在已經(jīng)到了Eclipse3.3,非常好用的一個工具。但Eclipse只是一個基礎(chǔ)平臺,假如你需要其他的功能,那你需要下載相關(guān)的插件進(jìn)行擴(kuò)展,下載的插件要注意一下跟Eclipse平臺的兼容性問題。Eclipse+MyEclipse(http://www.myeclipseide.com )是個是很多WEB開發(fā)人員都是在采用的一個整合工具,但MyEclipse要錢,如果公司愿意為此支付29.9美元的話,那它是一個非常好的選擇;比MyEclipse更上一個檔次的還有Exadel(http://www.exadel.com/web/portal/home ),不過,價格貴得離譜,因?yàn)樗旧砭褪且患易稍兎?wù)公司做出來,主要還是靠咨詢服務(wù),培訓(xùn)掙錢,并且,運(yùn)行時的不穩(wěn)定,也讓我放棄了選擇這個插件作為我的開發(fā)工具,雖然這個工具真的是很強(qiáng)大。Eclipse+WTP(http://www.eclipse.org )也是一個非常好的免費(fèi)的開發(fā)工具,從eclipse官方網(wǎng)站上可以下載WTP跟Eclipse整合在一起的工具,現(xiàn)在教學(xué)基本上用這個。Lomboz(http://lomboz.objectweb.org/ ) 也是一個非常好用的免費(fèi)J2EE插件,學(xué)生用的很多,因?yàn)楹孟裼胁簧贂际怯眠@個進(jìn)行教學(xué)的。通過插件來的擴(kuò)展本來是一件好事,但當(dāng)它的版本問題?兼容性 問題?安全性問題?語言問題?出現(xiàn)的時候,你就會罵著,為什么不提供一站式開發(fā)平臺呢?如果你下載了語言包,你會發(fā)現(xiàn),有些地方是中文的,有些地方是英文 的,極其丑陋!也許,Eclipse作為一個基礎(chǔ)平臺,它確實(shí)是太基礎(chǔ)了。但現(xiàn)在,我們也可以下載一些All-In-One版本的Eclipse,但個人 感覺還是不夠,很多功能,我們還需要去找插件來進(jìn)行擴(kuò)展。也許,Eclipse的決策者認(rèn)為,作為基礎(chǔ)平臺,肯定是越簡單越好,需要什么就加什么,這樣, 資源占用會更少。正如東方標(biāo)準(zhǔn)最咨深的平面老師曾宇飛講過一句話:你會去麥當(dāng)勞點(diǎn)酸菜魚吃嗎?
NetBeans: 作為Sun公司出品的開發(fā)工具,功能一樣也是非常強(qiáng)大,不管你是做應(yīng)用程序開發(fā)還是做應(yīng)用系統(tǒng)開發(fā),NetBeans都是一個不錯的選擇。 NetBeans也跟Eclispe一樣,也是一個基礎(chǔ)平臺,但這個基礎(chǔ)平臺做得比Eclipse強(qiáng)大很多,基本上你下載一個NetBeans就可以開發(fā) 應(yīng)用程序或J2EE應(yīng)用系統(tǒng)了。并且,NetBeans的中文支持非常好,基本上一個新版本出來,就已經(jīng)有中文版、英文版跟日語版了。看 來,NetBeans的決策者還是比較看好這些人群的。NetBeans的Mobile插件開發(fā)J2ME是最快最好用的,至少我個人這么認(rèn)為。開發(fā) J2ME應(yīng)用產(chǎn)品,我首選的就是NetBeans。目前NetBeans已經(jīng)發(fā)展到6.0的版本了,界面非常華麗,有興趣的朋友可以下載一個玩一下。 NetBeans的下載地址是:http://www.netbeans.org 。
IDEA: 對于IDEA的評價,我只能用六個字來形容,那就是:實(shí)用的藝術(shù)品。它非常好用,界面非常華麗,相當(dāng)如果你是一個女性的項(xiàng)目經(jīng)理或技術(shù)牛人,你會喜歡上這 件藝術(shù)器的。IDEA開發(fā)應(yīng)用程序非常強(qiáng)大,這一點(diǎn)絕對可以肯定。官方提供的插件也非常豐富,當(dāng)你需要那一方面的功能,基本上都可以找得到,找插件,你只 需要在官方插件庫里面去找就可以了,并且自動安裝,自動更新。作為2003年拿到JavaWorld大將的一個作品,相信,它可以帶來很多IDEA的創(chuàng) 新。它是屬于商業(yè)化的工具,價格也只有499美元,而個人買也就249美元,如果你愿意犧牲某些功能,那你完全可以下載一個免費(fèi)的版本。價格方面,個人覺 得完全對得起這件藝術(shù)品價值。有興趣的話可以下載一個試用版玩一下:http://www.jetbrains.com/idea ,小聲地說,上一下baidu,插件一下,其實(shí)你可以找到很多注冊號。
Ant是apache的一個開源項(xiàng)目,可以從Ant官方網(wǎng)站上下載一個最新的版本:http://ant.apache.com 。雖然該項(xiàng)目雖然現(xiàn)在發(fā)展變得非常緩慢,但可以非常肯定地講,它是一個好東西。我們可以使用ant來對我們整個工程進(jìn)行編譯,打包,單元測試,部署等等,基本上你想得到的東西,Ant可以幫你做得到。Maven(http://maven.apache.com ) 是一人比Ant還要強(qiáng)大的工具,現(xiàn)在大有Maven將會代替Ant的趨勢,Maven也是項(xiàng)目經(jīng)理要關(guān)注的一個技術(shù)點(diǎn)。基本上現(xiàn)在主流的開發(fā)工具都提供共 了對Ant的支持,有些甚至是依賴,比如:NetBeans,你在NetBeans當(dāng)中創(chuàng)建一個新的工程,那系統(tǒng)會自動地創(chuàng)建一個ant的運(yùn)行腳本程序。 對于你進(jìn)行編譯、打包、發(fā)布,那完全都是依賴于這個ant腳本。我們可以使用Ant來開發(fā)一個DailyBuild(微軟叫每日產(chǎn)品生成,XP叫持久集 成)的流程,來提高我們整個團(tuán)隊(duì)的軟件開發(fā)質(zhì)量。Ant的使用非常簡單,多看手冊,多花點(diǎn)心思,那你會做得更好。
三、開發(fā)階段
第一、配置管理工具
代碼管理工具有很多,現(xiàn)在公司用得比較多的代碼管理工具有CVS、VSS、SVN。
對 于一個開發(fā)團(tuán)隊(duì)只有2-5個人,并且這兩三個人是同一間辦公室里,那使用VSS是一個非常不錯的選擇,個人覺得他小團(tuán)隊(duì)的管理方面非常好用。個人覺得 VSS唯一的缺點(diǎn)就是一個文件當(dāng)被一個人鎖定,那其他人就沒有辦法進(jìn)行修改了,當(dāng)一個文件為多個人所共用且開發(fā)團(tuán)隊(duì)人數(shù)較多時,這種問題將會顯示非常嚴(yán) 重。VSS客戶端跟服務(wù)器你都可以從Visio Studio里面找到。
Eclipse的VSS客戶端插件:http://vssplugin.sourceforge.net/
對于一個開發(fā)團(tuán)隊(duì)有超過5個人,那此如選擇CVS或SVN將是一個更好的選擇,并且,假如你的團(tuán)隊(duì)是分散的,可能不在一間辦公室或者根本不在同一個城市,那使用CVS或SVN是一個非常更想的選擇。CVS的服務(wù)器一般是使用CVSNT或CVSServer。
CVSServer:
Linux for X86:http://ftp.gnu.org/non-gnu/cvs/binary/stable/x86-linux/RPMS/i386/
Window for X86:http://ftp.gnu.org/non-gnu/cvs/binary/stable/x86-woe/
CVSNT:http://www.cvsnt.org/
CVSClient:
WinCVS:http://www.wincvs.org
TortoiseCVS:http://www.tortoisecvs.org/
JBuilder、Eclipse、NetBeans、IDEA集成的CVS客戶端
作 為版本管理工具,CVS出現(xiàn)至今,已經(jīng)有二十個年頭,可以說他已經(jīng)走到了盡頭,但可以肯定,它將繼續(xù)存在著。SVN是作為CVS的代替產(chǎn)品而出現(xiàn)的。現(xiàn)在 很多開源組織,都慢慢地轉(zhuǎn)到SVN上,比如Apache跟SourceForge。SVN有著比CVS更強(qiáng)大的功能,比如,它可記錄目錄的更改,它的性能 比CVS會快很多等等。目前SVN慢慢地被企業(yè)所接受,但個人覺得其Eclipse的客戶端的穩(wěn)定性還有待提高,也許這個跟Eclipse的版本兼容性有 一定關(guān)系。但這些不穩(wěn)定性,讓我現(xiàn)在對這個產(chǎn)品的使用還繼續(xù)停留在試用的階段。
SVNServer:http://subversion.tigris.org/
SVNClient:
TortoiseSVN :http://tortoisesvn.net/
Eclipse插件:http://subclipse.tigris.org/
目前SVN插件支持包括Eclipse、Jdeveloper、NetBeans等開發(fā)工具。
第二、知識庫管理工具
團(tuán) 隊(duì)每一個人在開發(fā)的時候都會發(fā)現(xiàn)一些問題,最終,有些問題可能沒有辦法解決,有些問題可以解決。一般情況,大部分問題經(jīng)過團(tuán)隊(duì)成員的共同努力,都是可以解 決的,那解決問題的方法,解決問題的步驟,這些都應(yīng)該形成知識。作為一個團(tuán)隊(duì)的Leader,我們必須重視這些知識,因?yàn)椋@些知識非常有用,它對于一些 新手或沒有遇到此類問題的同事,能夠提供相應(yīng)的幫助。
Confluence(http://www.atlassian.com/software/confluence ),跟JIRA來自同一家公司的產(chǎn)品,它跟JIRA可以整合得非常好。我們可以通過JIRA的ISSUE,將該ISSUE上升為一個知識。假如你是使用 JIRA來進(jìn)行項(xiàng)目管理跟缺陷管理,那使用Confluence是一個最佳選擇。
PHPBB(http://www.phpbb.com ), 論壇其實(shí)也是一個非常好的知識庫管理工具,當(dāng)某一個工程師遇到一些疑難雜癥的時候,最終,通過自己的努力或團(tuán)隊(duì)其他同事的努力,終于解決問題了。那作為 Leader的你,應(yīng)該鼓勵他們將這些知識,寫一些文章,然后發(fā)布在公司自己的BBS上。供大家參考及討論。這個是一種很好的方法。記得我以前,我在網(wǎng)上 看到一些有用的信息,我就把它保存在我本機(jī)的PHPBB上。只可憐,后來電腦被人偷了。賊郁悶。
四、軟件測試階段
第一、缺陷管理工具
軟 件你不能保證它永遠(yuǎn)不會錯,只是,有些錯誤你暫時還沒有發(fā)現(xiàn)而已;有些錯誤需要在某些特定的環(huán)境下它才會發(fā)生。就像Windows,時不時會有一些系統(tǒng)更 新文件要求更新。可能這些更新不是錯誤,只是一些系統(tǒng)安全方面的隱患。這些都可以算是軟件系統(tǒng)的缺陷。那這些缺陷我們應(yīng)該怎么進(jìn)行管理?怎么進(jìn)行跟蹤呢? 現(xiàn)在缺陷管理用得比較多的有兩個:第一個是開源的bugzilla,另一個是商業(yè)的JIRA。
Bugzilla(http://www.bugzilla.org ), 作為開源界缺陷管理系統(tǒng)的鼻祖,它發(fā)展到現(xiàn)在已從98年到現(xiàn)在經(jīng)有10的時間了。它的開發(fā)語言是Perl,這使得它的安裝變得很麻煩,Bugzilla可 以安裝在Windows、Linux、Unix等操作系統(tǒng)上。現(xiàn)在的Eclipse也提供了對它的支持,我們可以在Eclispe平臺上,找到應(yīng)用系統(tǒng)的 BUG,功能做得非常強(qiáng)大。如果安裝能更加輕松一點(diǎn),或者提供一個All-In-One版本,那會更好!
JIRA,作為商為上化的缺陷管理系統(tǒng),JIRA的價格對得起它的功能。JIRA不只是一個缺陷管理系統(tǒng),它更是一個集項(xiàng)目管理、缺陷管理、統(tǒng)計(jì)分析為一身的工具。這個工具我一直在使用,只是使用一些“特別”版本而已。
第二、軟件性能監(jiān)測工具
Jprofiler(http://www.ej-technologies.com )是一個非常好的性能監(jiān)測工具,使用這個工具,你可以快速發(fā)現(xiàn)系統(tǒng)那些模塊出現(xiàn)性能瓶頸或算法導(dǎo)致的性能問題;它還可以分析內(nèi)存泄漏的問題。這個工具也提供了相應(yīng)的Eclipse插件,讓你開發(fā)更加快速方便。它支持主流的服務(wù)器。
Borland Optimizeit Suite(http://www.borland.com )也是一個非常好的性能監(jiān)測工具,它跟Borland產(chǎn)品整合得非常好。不過,運(yùn)行這個工具,你最好準(zhǔn)備一下,最好有2G內(nèi)存,否則,本來系統(tǒng)好好的,一運(yùn)行起來,你機(jī)器反而死掉了。
第三、軟件性能測試工具
Ant+Windows計(jì)劃任務(wù)創(chuàng)建公司的DailyBuild自動化測試流程,這個是以前做的一個測試流程。使用這種測試流程,無非一個目的,就是提高公司的軟件質(zhì)量。
Jmeter(http://jakarta.apache.org/jmeter ),這個工具是apache出品的,作為apache忠實(shí)的Fans,我對Jmeter也是很喜歡,使用Jmeter,你可以摸似多用戶環(huán)境,對應(yīng)用系統(tǒng)進(jìn)行測試,測試整個應(yīng)用系統(tǒng)能夠承受的最大并發(fā)量。
LoadRunner(http://www.hp.com ),假如你不知道這個軟件,那你肯定做不了測試工程師,這個是最專業(yè)的一個軟件性能測試工具,它可以模似上千萬個用戶量來進(jìn)行壓力測試,檢測系統(tǒng)能夠承受的最大并發(fā)量。這個軟件我只用過幾次,編寫腳本,進(jìn)行測試,使用來講其實(shí)算是比較簡單。
五、軟件發(fā)布
軟 件的發(fā)布我們會怎么去做呢?我們一般做法就是,將數(shù)據(jù)庫腳本化,包括建表語句、初始化數(shù)據(jù)等,還有制作WAR文件或EAR文件。然后到客戶那邊,我們需要 將數(shù)據(jù)庫表及數(shù)據(jù)進(jìn)行初始化,接著,將WAR或EAR文件發(fā)布到應(yīng)用服務(wù)器上。這個也許是我們到客戶現(xiàn)在發(fā)布經(jīng)常在做的一件事情。那能不能做得更加簡單 呢?做法一般有兩個,第一個就是使用Ant,編寫一個初始化數(shù)據(jù)庫跟發(fā)布應(yīng)用程序模塊的Ant腳本,然后到生產(chǎn)機(jī)上直接運(yùn)行該腳本即可;第二個就是制作安 裝文件,一般用來制作安裝文件的有IzPack,這個是用得最多的一個免費(fèi)工具,你可以使用這個免費(fèi)工具來制作安裝程序。也許客戶都習(xí)慣了安裝程序的安裝 方式了,制作一個可執(zhí)的安裝程序,有助于提高軟件產(chǎn)品化的檔次。
六、軟件維護(hù)階段
第一、客戶CASE跟蹤管理工具
客 戶CASE跟蹤系統(tǒng)相信很多做CISCO公司金牌代理的人都會用過。我們必須在公司內(nèi)部建立相應(yīng)的CASE跟蹤制度。當(dāng)用戶使用系統(tǒng)的時候,發(fā)現(xiàn)一些問 題,那我們需要對這些問題進(jìn)行錄入并進(jìn)行跟蹤。像客戶呼叫服務(wù)系統(tǒng)等等一些商業(yè)化的軟件外面還是很多的,這些系統(tǒng)其實(shí)公司自己開發(fā)一個也是很快的。但必須 要有。這個也是提高整個公司整體服務(wù)形象的一種態(tài)度。
ExtJS教程- Hibernate教程-Struts2 教程-Lucene教程