golang-standards 提供的golang 項目結構布局


golang-standards 社區提供了一個golang 項目的參考結構,同時提供了比較完整的說明

go 目錄

  • /cmd 
    項目的主干,次目錄應該足夠簡單
  • /interenal 
    內部的,不需要分享到外部的,這個屬於golang 內部的一個特性,我們也會在好多開源項目中看到
  • /pkg 
    可復用的一些代碼庫
  • /vendor 
    vendor 模式的包,現在推薦的玩法是go modules 功能

服務應用模式

  • /api 
    關於openapi/swaggeer 規范的json 模式文件

web 應用模式

  • /web 
    靜態web資源,服務器模版以及單頁面應用。。。

通用應用

  • /config 
    配置文件模版或者more 嗯配置
  • /init 
    system init 管理的腳本
  • /scripts 
    構建,安裝,分析等的腳本
  • /build 
    打包以及持續集成的
  • /deployments 
    關於iaas paas,以及部署的,也可以水用/deploy 命名
  • /test 
    關於程序測試的

其他目錄

  • /docs 
    設計以及用戶文檔
  • /tools 
    項目的支持工具,工具可以從/pkg 以及/inteernal 導入
  • /examples 
    公共實例
  • /thrid_party 
    外部輔助工具和,或者其他三方工具
  • /githooks 
    git hooks
  • /assets 
    與代碼庫共享的(圖像,徽標)
  • /websitee 
    關於項目的website 文檔,可以使用github pages 。。。

不應該用的目錄

  • /src 
    以前好多項目使用的是src 模式,已經不推薦使用了

參考資料

https://github.com/golang-standards/project-layout 
https://github.com/danceyoung/paper-code/blob/master/package-oriented-design/packageorienteddesign.md


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM