今天先來做一點專案結構上的調整,自己用的小程式或是驗證測試用的是可以一個main打天下,但在比較正規或多人協作的專案上就不能如此的自由奔放,今天來調整我們的程式與專案路徑結構。
我們先來看一下幾個使用Golang開發的區塊鏈他們的專案結構
Elrond
Ethereum
Avalanche
klaytn
看了幾個成熟的repo後對於專案結構比較有點想法,因為這種結構並不會明文規定,基本上都是看個人的習慣去設計,也有人整理一些結構設計讓大家參考,這次參考golang-standards/project-layout的架構來重新設計我們的專案。
簡單分享一下架構目錄跟用途
/cmd 專案的主要應用程式
/internal 私有的程式庫和函式庫
/pkg 讓外部使用的程式庫和函示庫
/vendor 手動管理相依套件
/api OpenAPI/Swagger 各種協議的定義檔
/web web相關元件、靜態web檔案、SPAs檔案
/configs 組態設定檔
/init 初始化系統設定
/scripts 需要執行建置、安裝、設定的腳本
/build 封裝套件與CI
/deployments IaaS、PaaS、系統和容器編配部署的組態設定與範本
/test 外部測試應用程式和測試資料
/docs 設計與使用者文件
/tools 專案的支援工具
/examples 使用範例
/third_party 外部輔助工具或Forked程式碼
/githooks githooks
/assets 圖片、檔案、LOGO
/website 網站相關資料
當然這些是比較常態的設定,可以根據不同的需求增減,這次要修改成的目錄目前有
/cmd
/internal
/api
/configs
/scripts
/test
/data
目前是暫定這幾個,先在Goland中建立起相關的資料夾
明天就來開始把main中的code都切出來到internal的函式庫。