均一的軟體系統相當龐大,目前它是由多名工程師一起維護的,面對這樣複雜的程式架構,又要由多人一起協同開發必然會遇到相當多的困難,而我們發展出了一套開發流程,用來確保工程師們可以順利進行合作、產出有品質的軟體。

我們的流程主要分成開發、測試、發布、上線四個部分:
開發

首先,在一個功能需求被提出後,負責處理的工程師會先從當前版本複製一個新版本出來,我們稱它為 Feature Branch。接著工程師會開始在這個在自己的電腦上使用這個版本進行開發、測試。

當工程師把程式碼儲存上雲端後,均一會有腳本 (CI/CD) 自動檢查基本的程式碼寫法、進行單元測試並於完成後在雲端部屬測試版本。
測試
當測試版部屬之後,均一的 QA 夥伴會拿到兩種連結用來進行測試,分別對應到使用測試資料以及真實資料的版本 :

測試資料是指均一夥伴自己產生用來模擬各種情境的資料,我們可以用它在均一內部測試新的功能、做壓力測試、實驗等等。
真實資料是指我們會用均一 Live 版的資料輸入測試版,來看新的程式碼與既有真實資料有沒有相容性問題,才不會到時候上線時才出現 Bug。
發布 & 上線

當 Feature Branch 測試完畢,工程師會提交所謂的 Merge Request 要求把這些新開發的部分發步到主要版本。
一個 Merge Request 需要經過另外一名工程師檢查(Code Review),看程式碼有沒有潛在問題、易讀性如何等等,待檢查通過後才會把這些部分發布到主版本。

當功能發布到主版本後夥伴就可以填寫表單申請上線給使用者使用了 !
在均一有專門的工程夥伴在處理上線流程,他會整合整個團隊各種不同的上線需求、安排上線時的測試等等,如果新版本發佈出去有問題我們也有對應的流程來處理版本回溯。
結語
均一目前已有成熟的流程,讓功能可以被有效率地開發、測試、產出有品質的軟體給用戶,而我們還在持續優化這一套流程,如果你對這樣的工作方式有興趣、也想參與其中,可以參考我們的職缺資訊 :
附註
均一主要是使用 GitLab、Google Cloud Platform 來實作以上流程。
這篇文章介紹的東西是比較概括性的,未來會再發佈新的文章來補充相關的細節,敬請期待!