3. 關於軟體開發
• Top Down 由上至下的開發模式
– 先定義總體流程及主要類別
– 各流程的接合界面有哪些
– 模擬整合後的運作情形
– 由整體需求出發,較不會開發出多餘的功能。
• Bottom Up 由下至上的開發模式
– 先實作可能需要用到的元件
– 依功能模組責任分工
– 最後試著整合看看
– 以功能導向出發,較易開發出精緻的功能。
4. 關於軟體開發
• Top Down 由上至下的開發模式較適用於專案開發。對
專案來說最容易拖延進度是在最後整合的階段, Top
Down 的模式,使得整合的模型在最初就形成,並且能
利用持續性整合的方式,針對每一批新增的功能做總體
的測試,對需求而變更實作的彈性較高。
• Bottom Up 由下至上的開發模式較適於獨立的公用程式。
此種開發模式優點在於針對特定功能定義明確,往往能
發展出較精確的測試案例。
• 無論專案以何種模式進行,測試案例與測試工具的使用
都能輔助您提昇開發品質。
9. Ant
• Apache Ant
– http://ant.apache.org
– Java 專案中最廣泛使用的建構工具
– 能透過簡單的 XML 撰寫編譯腳本
10. Why Ant
• 因 JVM 在各平台的普及性, Java 開發者選擇的開發
平台也顯得多元化。既有的 build tool 多為各平台相依
的:
– Linux 平台以 GNU Make 為大宗
– Windows 平台以 NMake 等 Windows SDK 提供的工具為大
宗
• 除工具的不同,還得考慮平台差異
– CLASSPATH 分隔字元:
• Windows 『 ; 』
• Linux 『 : 』
– Shell/DOS 指令差異
• 刪除檔案 rm del
• Write once, run anywhere JVM + Bytecode
– 若是沒有替 Java 設計統一的編譯工具,編譯的流程難以達到
『一寫通用』
11. Ant 的設計哲學
• 提供一個可移植性高的編譯與部署工具
– 設計必需簡單易學
• Ant 的核心模型概念只有三個:專案、執行目標、任務
– 使用者能輕易讀懂編譯腳本
• Ant 使用已廣為人知道 XML 作為腳本語言
– 工具必需能夠讓使用者擴充
• Ant 提供擴充 API 讓進階使用者能擴充新功能
19. Ant In Daily
• AntInDaily 專案的主要功能為
ConfigurationManager 。這是許多專
案開發時都會提供的類別,功能只有
負責讀入設定檔,並將它轉成物件。
20. Ant In Daily
• ConfigurationManager 會讀入
config.properties ,並提供
getDatabaseInfo() 方法,將部分的
參數集合成 DatabaseInfo 物件。
21. Ant In Daily
• 專案內有個 config 目錄,並且包含
二個子目錄
– dev
– prod
• 我們期望一般開發時,程式編譯是使
用 dev 目錄內的設定檔;當要編譯
正式環境版本時,要改用 prod 目錄
的設定檔
22. Ant In Daily
• IDE 能輔助開發,並且在程式語法完
整、正確時,替您編譯出最新的
.class 檔。
23. Ant In Daily
• IDE 難以切換不同情境的編譯:
– 正式環境版本
– 開發環境版本
• 依賴『手工』容易出錯
– 複製檔案
– 改寫設定檔
• 『在我的電腦上,跑起來沒問題啊!』
• 『一定是你的電腦怪怪的!』正式版
開發版
24. Ant In Daily
• IDE 難以選用不同的 Library 版本
– 依賴人工操作 UI 來替換不同的 Library
– 使用 Ant 能透過參數化,在編譯時決定要
使用的版本。
• 在某些情況,我們希望使用完全不同的
版本進行編譯,並且打包成一個 Fat
JAR
25. 撰寫 Ant Build Script In Eclipse
• 工欲善其事,必先利其器
– 熟悉 Eclipse 撰碼提示功能
– 熟悉 Ant Editor 的提示
• 學習目標:
– 正式進入 Ant In Daily 實作前,以利用一個較簡單的
MyProject 從無到有寫出 Ant Build Script
– 熟悉 Ant 手冊的形式,加速對手冊的閱讀及範例使用
26. 撰寫 Build Script for Ant
• 新增 build.xml
– Ant 預設的 Script File 名稱為 build.xml
– Eclipse 開啟 build.xml 時,會自動選用 Ant Script Editor
– 使用撰碼提示功能,快速產生 Build Script 樣版
27. 撰寫 Build Script for Ant
• 要使用撰碼提示 (Content Assist)
功能,您可以:
– Edit 功能表 Content Assist
– 使用熱鍵 Alt + /
• 右邊的圖例,撰碼提示的熱鍵顯示
為 Ctrl + Space 。這是正確的,因
為 Eclipse 同一個功能可能有多組
設定,而 Ctrl + Space 恰為開啟
中文輸入法的熱鍵,我們只能改用
Alt + / ( 或自定不同的組合 )
29. 撰寫 Build Script for Ant
將樣本多餘的部分刪除,留下一個 <target>
輸入 <jav 並使用撰碼提示
30. 撰寫 Build Script for Ant
<javac>
• 我們即將使用 <javac> 編譯專案,但是該如何使用呢?
– 參考手冊的範例
<javac srcdir="src" destdir="build" />
31. 撰寫 Build Script for Ant
Run Ant Script from Eclipse
• 在 build.xml 開啟右鍵選單,執行 Run Ant Build
C:workspace2MyProjectbuild.xml:8:
destination directory "C:workspace2MyProjectbuild"
does not exist or is not a directory
60. 在 IDE 外執行 Ant
• 透過 IDE 學習 Ant Script 的撰寫是相當方便的。對於
軟體開發者來說,讓工作更加自動化也是重要的。當您
學會在 IDE 之外使用 Ant 時,它能帶給您更多的便利
。
• 執行 Ant 的方法:
– IDE
• Run As Ant Build
• Click Ant View Button
– 命令列
61. 在 IDE 外執行 Ant
• 安裝 Ant 命令列工具
– 將在 Ant 官網下載回來的壓縮檔解壓縮:
• Ex. C:appapache-ant-1.8.2
– 設定環境變數
• ANT_HOME= C:appapache-ant-1.8.2
• 並在 PATH 變數再加上 %ANT_HOME%bin
64. 在 IDE 外執行 Ant
• 當您在 IDE 內寫完 Ant Build Script 後,除了在 IDE
上測試,強烈建議您也使用外部的 Ant 程式執行看看。
• IDE 附的 Ant 版本往往比您後來下載的『舊』,多一
份用心,稍為測試一下。
65. 在 IDE 外執行 Ant
• 當 Ant 能在 IDE 外執行後,我們還可以:
– 使用 Ant 來執行 Java 程式
• 利用 Ant 的功能,簡單處理 CLASSPATH
– 使用 Ant 來輔助其他任務
• 在 Linux 下有方便的 Shell Script 。 Windows 的 .Bat 相較之下
是較陽春的。
• 將複雜的功能交給 Ant , .Bat 只要負責喚起 Ant Script 就行了
– <cvs>
– <ftp>
– <ssh>
• .Bat 配合 Windows 排程即可完成週期性任務