Golang 專案架構分享
今天我想要來介紹目前我比較有把握的Golang專案架構 但與其說是專案架構,更不如說是讓每一段程式都有機會可以被測試
在我接觸寫程式到現在,一直覺得撰寫測試是一件必要但不緊急的事情 一直很想要將這些時間接觸到的內容整理起來,因此才會有這一小段的系列文
首先,要讓專案導入測試,有幾個點我覺得是要先突破的
- 程式的架構規劃
- 測試工具的應用
- 開發習慣的流程
- 開發的時間成本
- 面對既有的程式的改寫手段
- 如何說服資源提供者讓你進行測試
- 如何讓專案的參與者一起撰寫測試
這些項目我覺得都是如果要讓一個專案有辦法導入測試還蠻重要的一環,而接下來的文章,我也會試著分享我對於這幾點的想法及實做的過程
但我也知道 就算上面規劃得再好 如果沒辦法讓專案負責人接受說寫測試對他來說是有益處的,這一切也是枉然 而讓合作伙伴一起加入這點,這點也是很重要的
但因為這段是需要時間跟實戰經驗的歷練才有辦法有比較實際的建議 而且這些比較涉及談判技巧的部分 所以在這次的系列文中,我可能分享的內容會比較空洞,重點我可能還是會放在前面五點上 因為就算要談判,你也要有具體的工具跟幫對方解決問題的手段,才有談判的空間
否則就算很會談判,但最後都是說空話,我相信談判也會很難繼續下去的
接下來的專案我會使用golang來進行操作,目標是實做一個http server,並且串接google drive的來達成附件上傳跟預覽的服務,並且完成所需要的文件及測試 搭配的工具跟框架如下
- 開發環境: Macbook pro 2019 13.4.1
- Language: Golang 1.21
- IDE: Goland
- Test: Testify
- Mock: Mock
- DI: Wire
- Swagger Generate: oapi-codegen
另外,因為這次的重點在規劃及架構,所以在與外部資源的互動的部分就不會在文章內細說 重點會放再怎麼將現有的服務解耦合,讓自己在開發的時候就算無法取得外部服務,也可以順利開發
這是這次的實做的版本庫