iT邦幫忙

DAY 2
4

使用Jenkins打造.Net CI Server系列 第 2

CI Server 02 - 為什麼我們需要CI Server?

  • 分享至 

  • xImage
  •  

在一個軟體開發團隊中,
CI Server就像是我們產品的守護神,
平常感覺不到它的存在,卻默默地替我們軟體品質把關,
讓我們可以花更多時間與精力在專注開發軟體上。
CI Server是Continuout Integration Server (持續整合伺服器)的縮寫,
持續整合代表了我們為了提升軟體的品質,不斷反覆重複進行的過程,
我們透過CI Server的幫助,可以提高軟體的品質,降低部屬軟體花費的時間,
甚至將我們習慣在開發後進行的工作都交給它,
(ex. 複雜度分析、安全性掃描...等)
透過CI Server每天不段的重複進行建置、單元測試和自動化部屬等工作,
我們也可以隨時確保我們的程式碼都處在一個穩定的狀態。

※核心概念
CI Server的精神就是,反覆、重複、不斷的持續進行,維持我們軟體的高品質,
它並不是一個一天兩天就可以完成的工作,
而是融入了我們的日常開發之中隨時存在,
我們不需要花太多的時間關注它,但它卻隨時存在著。

對開發人員來說,
在導入CI Server之後的開發,和導入之前並沒有任何的不同,
一樣的從版本控制系統上取得原始碼,進行開發後並Check In,
完全不需要花費任何的時間去適應導入CI Server後的新流程,因為一模一樣!
不同的是再也不用擔心從版本控制系統上取得的程式碼可不可以用,可不可以Build,
或是更改共用底層元件時會不會影響到其他人,大大的增加了程式碼的可靠度和可重用度,
因為我們可以透過CI Server在Check In程式碼之後自動進行單元測試,
更甚至我們可以每天進行針對全系統的整合性測試,增加了開發者對版本控制系統的信心。

而對專案的管理者來說,
可以透過CI Server提供的報表,輕鬆地掌握目前專案開發的狀況,
透過單元測試報表,看出目前測試程式的涵蓋率及通過率,確保工作項目的完成度,
透過靜態程式碼分析報表,找出系統潛在的問題,統一成員的程式碼分析風格,
透過自動化部屬,部屬工作不在占用資深開發人員的時間,
讓開發者可以減少Routing Deploy工作浪費的時間,專注在更重要的工作上。

※使用優點
一、完全的自動化,第一次設定好之後就不需要再管它
二、Web介面 (Jenkins),只要透過瀏覽器可以隨時操作瀏覽
三、不需重新適應流程,完全依照既有的開發步驟,導入不會打亂習慣的節奏
四、提高專案開發透明度,軟體成員和管理者可以透過報表輕鬆掌握目前軟體的狀況
五、養成良好的開發習慣 (版本控制、單元測試以及統一的程式碼風格)
六、提早發現潛在的風險 (程式碼複雜度、安全性)
七、保持軟體穩定,有更改就測試,建置異常馬上發出通知給團隊成員,不怕改壞程式

※總結
有了CI Server,可以提高大家對於開發出來產品的信心,
因為我們可以透過各種報表說服大家產品的內容是完全Feat Goal,並經過測試!
也可以讓開發人員養成良好的開發習慣,
多花30%的時間撰寫單元測試,卻可以減少日後無數的維護成本,
更改別人開發的程式碼時,只要跑過他寫好的測試就不怕改壞!
讓所有在版本控制系統中的程式碼都是可用的,
不存在年久失修的問題,大大降低重工率。
萬一真的有人不小心改壞程式碼時,
也可以透過整合測試找出更改後邊際效應(Side Effect),
不會等到系統真的上線才發現有異常,
最大的好處是整個過程都是持續進行的,不是一天兩天而已,
不但改善了軟體的品質,也改變了使用者的生活,
因為再也不怕改壞東西,相對程式碼就會不斷的被完善,越改越好用!


上一篇
CI Server 01 - 從零開始
下一篇
CI Server 03 - Jenkins簡介
系列文
使用Jenkins打造.Net CI Server30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言