上回介紹了一本敏捷發展製程(Agile)的書《Agile and Iterative Development - A Manager's Guide》,它著重在高階觀念的融會貫通。這回介紹如何利用一些開放源碼的工具,來協助Java軟體開發人員體現敏捷製程的精神,透過開發人員的角度來介紹敏捷製程,讓你覺得它不只是理論,也能落實在軟體開發的實務中。

Java瘦身非夢事

近來Java軟體的發展也逐漸走向「健怡」風,從軟體製程的改良(OOAD及Iterative法,以測試為中心的發展方式),到軟體框架的減重(像是Spring Framework的興起,POJO重新受到推祟),慢慢地大家認同為了加速整個軟體專案的時程,有效提高軟體品質,並以目標導向為主,不一昧追求複雜技術。

就因為是以目標導向為開發基本方針,本書作者Jeff Langr有鑑於此,便以TDD(Test-Driven Development)為中心思想,結合Java 5本身的OO特性,將TDD的觀念以程式撰寫的方式落實在Java開發人員身上,說明落實敏捷製程時需要重視的細節。所以本書中採用Java 5為主要程式語言,以目前最熱門的JUnit為軟體單元測試之主要框架,而透過Apache Ant工具達到自動化測試及編譯工作。由於是實務導向的內容,書中詳細提到這些工具的運用方式及程式的撰寫細節。

本書適合Java新手,或沒用過JUnit測試框架,甚至對兩者都十分陌生的開發人員。不論是拿來當成Java的自學教材,或是用來當成研究JUnit的書籍都相當合適。本書內容以十分平實的方式來介紹,透過案例研究的方式,讓入門者也能一步一步體驗Java及TDD的樂趣。
全書共分十五個課程外加三章補充章節。第一章開始以簡單的程式碼說明如何利用JUnit測試框架來進行測試,從建立單元測試之物件(TestCase)開始,然後設計測試用的方法,最後並評斷(Assertion)測試結果是否正確。

第二章起便以五個章節的篇幅介紹Java語言的基本觀念,將物件導向的概念簡單化,從類別(Class)的定義開始,如何設計屬性及方法,如何實體化物件,字串(String)物件的運用,如何規畫Package,介面的設計(interfaces)及多型(polymorphism)的觀念,物件的繼承(inheritance)等。

接下來的章節便介紹例外處理(Exception)及記錄(Logging)機制,對不同資料結構(Collections)的操作,數值運算,輸出輸入(IO)機制,反射機制(Reflection),多執行緒機制,泛型(Generics)的運用,Assertions及Annotations等。

介紹完畢邏輯層面後,補充章節則透過設計學生資訊系統的操作介面,介紹如何使用Swing套件。在這裡提到了MVC的觀念,說明Swing套件中對應元件的相互關係。最後一章則一併說明在Java開發過程中所會遇到的其他課題,像是JAR檔的製作、JDBC的使用、多國語系的設計等等。

以實例及TDD為主

單從這些章節的規畫看來,就像是一般介紹Java程式語言的書籍一樣,分別針對Java本身的特性進行介紹,但不同的是,所有搭配說明的程式碼都與撰寫JUnit TestCase內容有關。從本書中可以得到作者對測試作業的建議,同時習得Java程式撰寫方式,以及測試元件的設計要領,有效地來進行敏捷製程開發。

另外,本書與其他介紹Java語言書籍的差異在於,作者不會一直鑽研Java核心理論及原理之中,而是以實例研究的方式(本書以學生資訊系統為主要案例),讓讀者可以將Java的精神與實際的系統設計相結合,閱讀起來更有感覺。

在每個章節均提供習題讓讀者練習,這些習題則是以一個西洋棋程式為主要目標,你可以用相同的觀念,嘗試落實在不同的案例上,解決其中的問題,以確保習得的觀念正確無誤,對Java及TDD也能有更紮實的理解。

當然,若你已是Java老鳥,本書也是讓你溫故知新的好書,除了重新整理Java 5的特性外,談論每個觀念時,都會提到如何將程式改良的作法(Refactoring),幫助你在程式撰寫上能有更佳的設計思維,進行提高開發的生產力。

Agile Java Crafting Code with Test-Driven Development
Jeff Langr /著
Prentice Hall PTR出版
售價:49.99美元
推薦:Amazon五顆星

《作者簡介》陳宏一
交通大學資訊管理研究所碩士,現任億訊國際資深顧問。曾任職於南亞科技資訊部工程師、資迅人網路研發副理、艾群科技產品研發部經理,專精於OOAD、J2EE 相關技術、Open Source、資料庫設計、軟體開發流程及專案管理等;取得SCJP、SCWCD、SCJD、SCEA、ITIL等認證。曾經歷大型社群及電子商務網站、WAP/3G行動加值服務、CTI/CRM客服系統架構規劃設計等。

Agile原文暢銷書排行榜Agile原文暢銷書排行榜

1. Agile Web Development with Rails
Dave Thomas, David Hansson, Leon Breedt, Mike Clark, Thomas Fuchs, Andrea Schwarz /著
Pragmatic Bookshelf出版
售價:34.95美元
推薦:Amazon五顆星

比起在其他架構設定相同系統時用到的XML原始碼,一套完整的Rails應用系統的總程式碼數,有時可以更少,從本書中可以使用ActiveRecord連接商務物件和資料庫內的資料表,不需要大費周章的對應物件關連性,只要建立你的商務物件,讓Rails處理剩下的工作即可。

2. Agile Project Management with Scrum
Ken Schwaber/著
Microsoft Press出版
售價:39.99美元
推薦:Amazon四顆半星

作者是敏捷發展製程領導人士和Scrum開發流程的共同發明者,他將導覽使軟體研發的過程更有力量、更有效率的方法。這本高階的參考書籍重實務勝於理論,探討使用Scrum的各種層面,同時也透過範例和案例研究結合專家的專業見解,描述使用Scrum管理複雜的專案細節。

3. Agile and Iterative Development: A Manager's Guide
Craig Larman /著
Addison-Wesley Professional出版
售價:39.99美元
推薦:Amazon五顆星

本書提供管理者和學生演練敏捷和反覆(agile/iterative)發展製程方法的指南,將處理關於定義、如何運作與實作方法。透過Scrum、XP、RUP和Evo等4種反覆的方法,協助你了解敏捷和反覆研發的發展目標,以及驅動敏捷與反覆製程的關鍵想法。

4. Agile Software Development with SCRUM
Ken Schwaber, Mike Beedle/著
Prentice Hall出版
售價:35.50美元
推薦:Amazon四顆半星

本書談到如何藉由Scrum以簡單的流程建立一套應用系統,讀者將了解一些新方法,包括減少系統研發專案複雜度和模稜兩可的部分、緊急需求和不穩定的技術,以便持續產生出有品質的軟體。

5.Lean Software Development: An Agile Toolkit for Software Development Managers
Mary Poppendieck, Tom Poppendieck/著
Addison-Wesley Professional出版
售價:44.99美元
推薦:Amazon四顆半星

兩位作者提供7種基礎的守則,並根據全球軟體研發的形態調整,書中展示了他們如何讓敏捷發展製程發揮效用。他們也介紹22種幫助思考的工具,協助讀者自訂實作方式。
資料來源:Amazon.com,2005.11.29

熱門新聞

Advertisement