DevOps

DevOps 是一種重視「開發」和「維運」之間溝通合作的文化、運動或慣例。透過自動化「軟體交付」和「架構變更」的流程,使得建置、測試、發布軟體能夠更加快速、頻繁且可靠。

在 GitLab 顯示測試覆蓋率:以 Go 為例

Go

在 GitLab 顯示測試覆蓋率:以 Go 為例

對現代開發者來講,單元測試已經不是可選,而是必備了。單元測試能保護程式碼,讓錯誤提早現形,也能讓重構時更安心。通常我們在評估單元測試的執行狀況時,會用 coverage 當成其中一項指標。當然,coverage 還是會有一些使用的場合跟侷限,當談到專案落地,可能大家會想知道的是,coverage 該怎麼使用,才能幫助到專案? 開發、審查、回顧 我們先來看看什麼時候會需要知道 coverage?通常依照團隊的工作流程,將它分為三個階段:開發、審查、回顧。每個階段關注的場景會略有不同。 一個一個講。對開發中情形,開發者想知道的是剛寫完的邏輯是否能正常運行,有沒有對應的測試,覆蓋範圍是否已經足夠,如果還有條件分支沒覆蓋到的話,是哪裡?是不是每個錯誤都有處理了。這時最需要的是,codebase 要能 highlight 剛剛講的資訊,幫助開發者一眼掌握。 當開發完成,feature branch 被提交到原始碼管理系統,例如 GitLab,會需要一名

By Ken Chen
Conan:建置並管理 C/C++ 的產出物

C/C++

Conan:建置並管理 C/C++ 的產出物

以前我們討論過如何在 C/C++ 的專案中,使用 Conan 管理第三方套件。當開發應用程式時,只要用 Conan 就能引入現成的函式庫;但如果角色轉換,開發的不是應用程式,而是函式庫,為方便他人引用,就需要將函式庫打包成 Conan Package,並上傳到 Server。在常見的開發情境中,開發者既需要引用別人的函式庫,也期待自己的函式庫能讓別人引用。 本文會講解如何編寫 Conan 的 Recipe,打包 C/C++ 的函式庫,並在實際的應用程式中引用。 需要 Clone 程式碼的,可以到這裡。 Create Conan Project 既然要打包程式,就需要先建立起專案 mkdir conan-recipe && cd conan-recipe 依照官方說明,可以用 conan

By Ken Chen

C/C++

Conan:C/C++ 的套件管理工具

開發 C++ 程式時,套件管理會是個困擾開發者的問題,C++ 不像 Python 有 pip;node.js 有 npm;lua 有 rock;C# 有 Nuget。它就只是沒有。沒有套件管理,當不同開發環境的使用者要開發程式時,不僅需要手動將相關的檔案塞進 repository 中,還會遇到相容性的問題,例如小明使用 paho-c 1.3.0 開發,開發到一半時,另一位開發者小華引用了小明放在 repo 中 include 資料夾下的 header file,卻使用了自己的 1.3.1 shared library,這使得兩個人的版本不相容,要花很多時間除錯。 此外,當需要更新

By Ken Chen

Python

掌握 Redmine 的活動指標:繪製熱度圖

我們平常使用 Redmine 來管理專案,當需要進行 Review 或討論如何改善時,常常需要基於 Redmine 的數據。由這些數據分析,也能得知團隊執行狀況是否順利。但是 Redmine 本身並沒有整合 Dashboard 的功能,因此需要透過 RESTful API 來取得專案資料,再使用第三方軟體繪製成圖表。 安裝 python-redmine 由於 Python 是我熟悉的腳本語言,選擇用 Python 來進行 Proof of Concept,首先安裝相關的 Python 套件 python -m pip install python-redmine 如果電腦有支援 pip 指令,可以直接用 pip3 install python-redmine 來安裝。 Windows 的

By Ken Chen