《Ant in Action 第2版 中文版》已經上市,敬請關注!
互動網購買:http://www.china-pub.com/39973
樣章免費下載:http://groups.google.com/group/bvpopbook/files
======================
對第 1 版的讚譽 Praise for the First Edition
======================
總體上講,《Java Development with Ant》是一部非常卓越的著作……包含了豐富的、有價值的資訊,而且組織精巧,講述清晰。 ——Slashdot.org
如果你在使用Ant,一定要看看這本書。 ——Rick Hightower 、《Java Tools for eXtreme Programming》的共同作者之一
這是一份關於Ant不可或缺的資料。 ——Nicholas Lesiecki 、《Java Tools for eXtreme Programming》的共同作者之一
在Java開發中採用Ant,對於任何真正想要掌控Java應用程式的人而言都非常重要。要是我自己能寫出這樣一部書就好了。 ——Stuart Halloway DevelopMentor、首席技術官、《Component Development for the Java Platform》的作者
有些問題,你甚至還沒有意識到它們的存在,Erik和Steve就已經給你答案了。這本書不僅涵蓋了關於Ant方方面面的主題,而且還講述了很多頗有益處的軼聞趣事,這些內容,只有那些將Ant用在生產環境中的人才會知道。 ——Ted Neward NET & Java 作家,講師
這是每一位Java開發人員的必讀書。 ——Denver Java 使用者組
-----------------------------------------------------------
譯者序
自從兩年前偶然拜讀了大野耐一先生的著作——《豐田生產方式》後,我發現自己變成了一個徹頭徹尾的“工具主義者”。當然,我無意要與哲學中的“實用主義”派系相混淆,儘管它們之間有諸多相似之處。工具越聰明,它能替人類完成的事情就多。我們不妨來看看在豐田公司,工具(機器)是如何運作的:
“操作人員僅是負責保證品質,只有少數幾個人負責擰螺釘或組裝組件。機器人負擔了全部工作,甚至駕駛著拉材料的小卡車滿樓道跑,遇到通道上有人就發出‘嘟嘟嘟’聲讓你走開。……機器人為每輛淩志車前方擋風玻璃貼橡皮密封條,機器人手臂仔細地將融化的橡膠塗在前面方形的視窗周圍……每當完成此項工作後,它的手指上經常留著一丁點兒橡膠,就如我們往牙刷上擠牙膏時,牙膏管口留下一點牙膏一樣。這時,機器人的手指尖在碰到一根細得幾乎看不見的金屬線時就會停下,該線將殘留在手指間那點滾燙的黑色橡膠刮下來——一切做得那麼乾淨利落。我瞪著雙眼看著這一過程……”
這段文字摘自托馬斯.弗裡德曼的《“淩志汽車”和“橄欖樹”的視角》一書。它描述的是豐田公司1992時的廠房情景。在豐田公司的車間裡,機器的數量遠遠多於工人。如果你還記得電影“摩登時代”中的卓別林的身體隨著齒輪轉動的情境的話,就會更加強烈地感受到彼此的不同。
“工具”在人類發展的曆史中,是一個不可忽視的角色。人類的每一點進步,都伴隨著新工具的出現,它可以完成那些原本需要由人來完成的事情,從而進一步地釋放人類的自由和智慧。
在電腦軟體開發的領域中,同樣存在著這種現象。
作為一名開發人員,你每天花在配置環境,以及測試、發布、部署軟體的時間有多少?是不是經常因為一個配置問題而導致進度停滯不前?開發軟體這項工作,真正能帶來價值的是編寫新代碼、添加新功能。而配置、發布、部署這些功能,儘管很耗時、很複雜,但本質上是重複性的勞動,對開發人員的時間和智慧都是一種浪費。那麼,為什麼不把這些工作都交給機器和工具來完成呢?
機器的時間比開發人員的時間要便宜的多。這是事實和趨勢。從組合語言被進階程式設計語言取代的那一刻起,曆史的車輪就朝著這個方向行駛了。時間到了今天,軟體的複雜度以及開發的難度已經達到了前所未有的高度,軟體系統的構成涉及到大量組件之間的互動,因此“編碼”佔全部開發過程的比重越來越低,而讓各種組件正常運作所花費的精力反而越來越多。對於開發人員這是很可悲的,他們正在把自己的時間和智慧用在那些重複的、本應由機器自動完成的工作上。對於項目這也是可悲的,最昂貴的資源並沒有被充分地利用。
幸運的是,今天已經出現了很多卓越的工具可以協助開發人員完成大量重複性的工作,而且具有高度的智能。本書介紹的Ant就是這些工具的一個傑出代表。幾乎所有Java開發人員都對Ant有著不同程度的理解,但是大多數人還停留在“需要時,臨時複製一段設定檔來用”的階段。但是,要發揮Ant的全部功能,僅僅這能種做法還不夠;更重要的是,僅僅有Ant還不夠!Ant像是一個強大的引擎,帶動起其他的工具,協助開發人員完成更多重複性的勞動。在這本書中,作者不僅介紹了Ant的基礎知識,也深入研究了Ant的進階特性。同時,作者還介紹了JUnit、HttpUnit、Cactus、Luntbuild、SmartFrog、Ivy等等,只有將這些工具有機地結合到一起,才能發揮出Ant的最大功效。
這個譯本得以出版,離不開曹徐劍先生的鼎力相助,是你在我最困難(時間最緊迫)的時候,給了我很多的協助。最後,我想以下面的情境作為結束,這個情境對於很多公司來說還很遙遠,但是,也有不少公司已經朝著它快速前進了:
“開發人員每天都把最多的時間花在代碼的分析和編寫上,而無需關心編譯、打包和部署這些繁瑣而不能產生價值的工作,因為這些工作都可以通過機器自動完成。每次開發人員添加或修改了一些代碼後,代碼會在提交前運行所有的單元測試,在提交後會運行所有的單元測試、迴歸測試和(或)驗收測試。測試執行結束後,會產生一份清晰美觀的報告,使開發人員可以清楚地掌握軟體的健康情況。如果測試出現錯誤,構建過程會自動停止,並且各種手段通知開發人員:停止當前的工作,立即修複錯誤。開發人員每天都會很高興地接受最有挑戰的智力問題,而專案經理也會很高興地看到,即使員工不加班,也可以寫出出色的軟體……”
其實,這不過是一個開始,還有更多的工具可以協助我們完成任務,也還有更多的自動化可以實現。但是,Ant絕對是一個起點,一個堅實的起點。
韓鍇 2008.4