版本控制與自動化持續整合實務

面對快速變動的軟體開發需求,想要維持軟體的高品質要求,持續整合(Continuous Integration;CI)是重要的關鍵;而版本控管則又是落實持續整合工作的源頭首站。

Jenkins 是實現 CI 的工具首選,而GIT則是目前最受歡迎的版本控管工具,透過這兩種工具與現有各種建置、測試、部署等工具的整合,讓企業更容易實現持續整合流程中關於自動化軟體建置、測試以及快速驗證軟體版本演進的需求。

Git帶來許多版本控管上的各種優勢與解決傳統集中式版本控管的缺失,例如支援本地存取、分散式、效能好、功能強大且彈性的分支與合併、普遍適合各種開發流程等等。不過Git無論在版控觀念與工具使用上,都與傳統集中式版控工具差異甚大,因此造成了不小的學習門檻。例如在版控過程中,因為過多的衝突發生,加上專案越來越大,小小的問題慢慢就演變成大問題了。

持續整合是軟體開發最佳實務之一:通常在軟體專案過程中,系統整合與測試都是留在後半段,萬一到了這個階段才發現規格不符,修改成本必然十分驚人。持續整合試圖解決這類問題,在專案初期,就開始進行介面整合與相關測試,並且持續進行。這種重覆不斷的程序,很明顯地需要搭配適當的工具,才能落實。持續整合期望以集中化的管理平臺,將專案開發過程中所有資訊都能統一控管並透明化,針對建構作業的部分,能提早發掘出整合時會面臨到的問題,進而及早解決。

軟體品質靜態分析-SonarQube實務

軟體品質靜態分析-SonarQube實務

軟體是企業重要資產,其重要性可預見會被更重視,但品質不好的軟體反而成為企業的負債,如何有效運用工具檢測軟體品質並從數據化分析結果規劃改善行動,是讓軟體從負債成為資產的關鍵手段。SonarQube 是一套相當完整的 Open Source 程式碼品質分析工具及管理平台,目前已支援超過20種主流程式設計語言,它管理的程式碼品質主要涉及七個維度: 程式碼架構與設計、重複度、單元測試覆蓋率、複雜度、潛在bug、程式碼撰寫風格及標準、程式碼註釋。

軟體變更衝擊分析實務

軟體開發人員最怕的事,就是軟體需求變更時,修改不完全或改A壞B,導致系統上線出問題。當今系統不僅龐大且變更頻繁,單靠人工依據文件與記憶去分析並找出變更時到底有哪些程式需要修改是非常辛苦且高風險。 變更衝擊分析工具能協助將系統裡眾多程式相互呼叫之關係,以及與資料庫表格之關聯性建立完整相依圖,幫助軟體開發人員做好軟體需求追溯及變更衝擊分析工作。