iT邦幫忙

2022 iThome 鐵人賽

DAY 15
0

今天先來做一點專案結構上的調整,自己用的小程式或是驗證測試用的是可以一個main打天下,但在比較正規或多人協作的專案上就不能如此的自由奔放,今天來調整我們的程式與專案路徑結構。

我們先來看一下幾個使用Golang開發的區塊鏈他們的專案結構
Elrond
https://ithelp.ithome.com.tw/upload/images/20220929/20140358hcRQj5nfds.png
https://ithelp.ithome.com.tw/upload/images/20220929/20140358Em4XVTsM4S.png
Ethereum
https://ithelp.ithome.com.tw/upload/images/20220929/201403584hImfuG273.png
https://ithelp.ithome.com.tw/upload/images/20220929/201403589veiHcgPXQ.png
Avalanche
https://ithelp.ithome.com.tw/upload/images/20220929/20140358ed5LXawh1l.png
https://ithelp.ithome.com.tw/upload/images/20220929/20140358qgRfl486Zd.png
klaytn
https://ithelp.ithome.com.tw/upload/images/20220929/20140358hOezZ20hhD.png
https://ithelp.ithome.com.tw/upload/images/20220929/20140358pF3McSxtif.png


看了幾個成熟的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中建立起相關的資料夾
https://ithelp.ithome.com.tw/upload/images/20220929/20140358e4hsRZ4smD.png
明天就來開始把main中的code都切出來到internal的函式庫。


上一篇
[Day 14] Elrond full node (五)
下一篇
[Day 16] Elrond full node (七)
系列文
如何打造屬於自己的區塊鏈錢包服務31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言