重構?測試?TDD?Ant?

很意外的,今天花了半天多時間,看了《測試驅動開發》,當然還需要時間消化,裏面有幾處爲什麼這麼重構,還是有點迷茫。。
入行一年多,項目做了幾個。沒一個滿意的。。。。主要就是代碼編寫得很垃圾,團隊協作不好,bug一堆。自己都不想看自己的代碼。 :x
這也許就是受過正規軟件教育和自學的差別吧! :D
不過個人感覺這也是好事,至少知道了自己的不足。所以花時間看了重構,TDD,又看了一遍設計模式。有了一些收益,但是還是需要在開發中去實踐。所以從現在開始逼迫自己以TDD開發。說來慚愧,以前項目裏基本就沒測試,文檔基本都是項目完了補的。(我想這也是國內大部分小公司的現狀吧。)
今天照着書,做着例子,用Ant管理程序,有點愜意 :D 之前就有用過Ant還有Maven,後來又沒用了,因爲實在沒找到其所說的優越性。今天藉着例子用Ant,感覺效率上是有一些提高(可能是錯覺),應該是比較有信心了。因爲有測試,雙擊下Ant的相應target,幾秒鐘測試通過,感覺心情很舒暢。有信心和愉悅的心情做下一步工作 :D
至於爲什麼還選Ant,而不用推廣比較火熱的Maven,是因爲第一次使用Maven,肯定要上網,網速要慢了就鬱悶了,一堆jar要下,要不自己建個倉庫。。。。個人使用的開銷太大了,很不划算。Ant就比較靈活了,寫個build.xml文件就搞定了。別人用什麼開發工具,什麼樣的目錄結構,我拿到手,修改下build.xml文件裏的相應路徑就搞定了。
爲順利用上,特意花時間解決了一些以前用Ant,懸而未決的問題。

1.和jee沒關係,是swing相關的。以前用ant運行swing程序,老是一閃而過,網上還沒找到解決辦法,昨天又找了找,在javaeye問答區找到了答案。將java標記的fork屬性設爲true或on即可。意思就是將ant和java程序運行在不同的jvm上。默認是運行在一個jvm上的,所以當ant運行結束後,自然就會關閉swing了。

2.ant啓動,關閉tomcat,在網上也找到了答案。

<target name="run">
<description>啓動tomcat</description>
<java jar="${tomcat_home}/bin/bootstrap.jar" fork="true">
<jvmarg value="-Dcatalina.home=${tomcat_home}"/>
</java>
<echo>成功啓動Tomcat</echo>
</target>

<target name="stop">
<java jar="${tomcat_home}/bin/bootstrap.jar" fork="true">
<jvmarg value="-Dcatalina.home=${tomcat_home}"/>
<arg line="stop"/>
</java>
</target>

<target name="debug">
<java jar="${tomcat_home}/bin/bootstrap.jar" fork="true">
<jvmarg value="-Dcatalina.home=${tomcat_home}"/>
<jvmarg value="-Xdebug"/>
<jvmarg
value="-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"/>
</java>
</target>


3.ant取消部署項目時,有時WEB-INF下的一些jar無法刪除,導致了整個項目目錄無法刪除,繼而導致無法重新部署。解決辦法,在META-INF(和WEB-INF目錄同級)目錄下,新建一個context.xml文件,輸入如下內容。

<Context path="/你的項目名稱" reloadable="true" antiResourceLocking="true" antiJARLocking="true">
</Context>


4測試失敗時不停止測試,還繼續運行。解決辦法,在junit標籤裏面將haltonfailure屬性和haltonerror屬性設爲true或on即可。

5我昨天找了半天ant的debug功能。ant的debug功能和IDE的debug功能應該是不同的意思,或者是我理解有誤。一般使用IDE的debug都是單步調試的,就是斷點調試。而ant好像就沒斷點調試能力(好像需要額外的代碼模擬之類的,沒研究)。不過這也就需要用測試來彌補了(是初期強迫寫測試的好辦法 :D ),事實上斷點調試時間是比測試所花的時間長得多。這個在做項目時深有體會。

寫了一些ant腳本。

1.build_app.xml。應用程序相關。包括了編譯,運行和打jar包。

2.build_web.xml。web程序相關。包括編譯,打包。

3.build_test.xml。測試相關,配合上面兩個構建文件使用的。提供編譯測試文件,測試及生成測試報告。測試類請以Test結尾,否則自行修改構建文件。

4.run_tomcat.xml。tomcat相關,啓動,關閉,debug tomcat。部署,取消部署,start,stop項目,配合build_web.xml使用。

四個文件保存在ant目錄下,只要在根目錄下建立build.xml文件,將需要的構建文件import進來就可以了。不要同時import build_app.xml文件和build_web.xml文件,target名稱有重複,且本來就是兩個不同的項目類型。

文件放附件,對Ant有興趣,又不想寫構建腳本的可以玩玩。相應路徑需要自行修改。

最後,自我祝願我的代碼質量能有所提高 :D
發佈了28 篇原創文章 · 獲贊 3 · 訪問量 6106
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章