優雅的程式開發之路
‧介紹持續整合(Continuous integration)與敏捷開發概念
‧Jenkins 快速入門
‧包含最熱門的 Android APP 自動化建置範例
‧如何修改 Jenkins 使其更能符合企業需求
‧介紹擴充 Jenkins 的原始功能
隨著 APP 時代的來臨,很多企業開始轉向開發相關軟體,軟體數量及需求如雨後春筍般產生;近年來軟體開發方法出現了許多演進,其中最受歡迎的便是敏捷開發方法 (Agile development method),而持續整合(CI,Continuous integration)是被廣泛採用的解決方案之一。
持續整合是讓系統開發在快速變動的需求下,仍能維持高軟體品質的重要關鍵,而 Jenkins 便是實現 CI 的首選工具,透過此自動化的軟體建置工具讓企業能快速驗證軟體版本演進的缺失,更能方便地整合現有各種原始碼管理方案以及各種軟體建置方法。如同棒球場上的「一球入魂」一詞,訴求的並不是一球就把對方擊倒,而是認真的、盡全力的投出每一球,然後取得比賽勝利的意思。「持續整合」的概念也是不斷地維護軟體品質,把握每一次程式變動,讓程式碼得以優雅的演進,讓我們一起追求程式碼的「一鍵入魂」吧!
本書提供讀者快速瞭解 Jenkins CI 工具,從安裝使用至如何撰寫程式擴充功能皆有提供詳盡的範例解說。內容包含:
1. 持續整合 (Continuous integration) 與敏捷開發方法
2. Jenkins 工具簡介
3. Jenkins 安裝及使用說明
4. 如何利用 Jenkins 自動化建制 Android APP
5. 整合自動化單元測試(Auto test)及靜態程式碼分析工具(static code analysis)
6. 如何撰寫程式碼擴充 Jenkins 以符合企業需求
目錄
第一章 持續整合
1.1 土木工程 VS. 軟體工程
1.2 Who is the guy broke the build?
1.3 《奔馳的代碼》Project Code Rush
1.4 But it works on my machine
1.5 Eat your own dog food
1.6 軟體品質最佳方案:持續整合
第二章 Jenkins 安裝及使用說明
2.1 Jenkins 簡介
2.2 環境說明
2.3 初見 Jenkins
2.4 Jenkins 使用說明
2.5 擴充 Jenkins 的功能 - 以 Xcode Plugin 為例
第三章 Jenkins X Maven
3.1 快速了解 Maven
3.2 建立中繼端的 Repository
3.3 Maven 的版本管理和 SNAPSOT 機制
3.4 Jenkins 與 Maven 的整合
3.5 Jenkins Artifactory Plugin
第四章 Jenkins X Android
4.1 Android 開發環境設定
4.2 使用 Ant 執行 Android 專案編譯工作
4.3 在 Jenkins 上設定 Android 專案
4.4 在 Jenkins 上檢視編譯失敗資訊
4.5 執行 Android APK 編譯與測試
4.6 設定 Android Emulator Plugin
4.7 設定 Android monkey tester
第五章 整合 SCM 工具
5.1 SCM 程式碼版本管理
5.2 The Best Practices for build
5.3 Git
5.4 Git Plugin
5.5 指定 Git 上的特定版本
5.6 SCM Change to Trigger Build
5.7 瀏覽 SCM Changes 記錄
5.8 SVN Plugin
5.9 Perforce plugin
第六章 軟體品質與靜態程式碼分析
6.1 Android Lint Plugin
6.2 FindBugs Plugin
6.3 CheckStyle Plugin
6.4 軟體品質與技術負債
第七章 測試導向開發範例 - 貪食蛇加強版
7.1 設定邊界大小
7.2 加入虛擬方向鍵功能
7.3 圖形介面的測試方法 - PROJECT SIKULI
7.4 涵蓋率分析 - 使用 Emma plugin
第八章 Jenkins 伺服器管理
8.1 Concurrent Build
8.2 Master/Slave 架構
8.3 Distributed Build
8.4 Jenkins nodes monitoring
8.5 Enable Security login
8.6 Jenkins permission control
8.7 Remote API
8.8 Jenkins CLI
8.9 Groovy Script Console
第九章 撰寫 Jenkins 擴充元件
9.1 Extensions Introduction
9.2 建立第一個 Hello World Plugin 專案
9.3 範例一:Line Number Plugin
9.4 範例二:Readme Plugin
9.5 範例三:Add User in Build History
9.6 Jenkins Descriptor 物件的序列化機制
9.7 Jenkins log 的除錯機制
附錄一 有趣的 Jenkins Plugin:Retaliation
附錄二 名詞定義
第一章 持續整合
1.1 土木工程 VS. 軟體工程
1.2 Who is the guy broke the build?
1.3 《奔馳的代碼》Project Code Rush
1.4 But it works on my machine
1.5 Eat your own dog food
1.6 軟體品質最佳方案:持續整合
第二章 Jenkins 安裝及使用說明
2.1 Jenkins 簡介
2.2 環境說明
2.3 初見 Jenkins
2.4 Jenkins 使用說明
2.5 擴充 Jenkins 的功能 - 以 Xcode Plugin 為例
第三章 Jenkins X Maven
3.1 快速了解 Maven
3.2 建立中繼端的 Repository
3.3 Maven 的版本管理和 SNAPSOT 機制...