<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] > [參考](https://github.com/golang-standards/project-layout) ## tree ``` ├─api ├─assets ├─build │ ├─ci │ └─package ├─cmd │ └─_your_app_ ├─configs ├─deployments ├─docs ├─examples ├─githooks ├─init ├─internal │ ├─app │ │ └─_your_app_ │ └─pkg │ └─_your_private_lib_ ├─pkg │ └─_your_public_lib_ ├─scripts ├─test ├─third_party ├─tools ├─vendor ├─web │ ├─app │ ├─static │ └─template └─website ``` ## internal 目錄說明 ### 實例1: ``` |-- checker | |-- internal | | |-- cpu | | | `-- cpu.go | | `-- ram | | `-- ram.go | `-- server.go |-- go.mod |-- go.sum `-- main.go ``` `checker/internal/cpu`和`checker/internal/ram`只能被`checker`包及其子包中的代碼導入,不能被`main.go`導入。當在`main.go`中導入并調用其函數,編譯期會報如下錯誤 只能被`internal/`下同層代碼所引用 ### 目錄概述 ## Go 相關目錄 ### /cmd 該項目的主要應用 具體項目(例如`/cmd/myapp`) 如果該項目不可重用,則放入`/internal`,可重用,放入`/pkg` ### /internal 私有的 application 或者庫代碼(不希望 package 的接口被擴散到同層目錄以外的空間中) 該目錄下的代碼受限于 Go internal package 機制的限制(見下文),只能被`internal/`下同層代碼所引用 此布局模式由Go編譯器本身強制執行 不僅限于頂層`internal`目錄。`internal`在項目樹的任何級別上都可以有多個目錄 ### /pkg 用來放置庫代碼,可被項目內部或外部引用 ### /vendor 項目依賴代碼。`vendor/`下放置著依賴代碼的一個副本。如果**項目是庫代碼,則無需提交依賴代碼** ## 服務應用程序目錄 ### /api OpenAPI / Swagger規范,JSON模式文件,proto文件,協議定義文件。 ## Web應用程序目錄 ### /web Web應用程序特定的組件:靜態Web資產,服務器端模板和SPA。 ## 通用目錄 ### configs 配置文件或者模版文件 ### init/ 系統初始化(如 systemd,upstart,sysv)和進程管理(如 runit,supervisord)相關工具的配置。 ### scripts 用于執行各種構建,安裝,分析等操作的腳本 這些腳本使根級別的Makefile變得小而簡單 ### /build 包裝和持續集成。 ### /deployments IaaS,PaaS,系統和容器編排部署配置和模板(docker-compose,kubernetes / helm,mesos,terraform,bosh)。請注意,在某些存儲庫中(尤其是使用kubernetes部署的應用程序),此目錄稱為`/deploy` ### /test 其他外部測試應用程序和測試數據。 隨時根據需要構建`/test`目錄。對于較大的項目,有一個數據子目錄是有意義的。 例如,您可以擁有,`/test/data`或者`/test/testdata`如果需要Go可以忽略該目錄中的內容。 請注意,Go還將忽略以 "." 開頭的目錄或文件或"_",因此您在命名測試數據目錄的方式上更具靈活性 ## 其他一些目錄 ### /docs/ 設計或者用戶文檔。 ### /tools 項目相關的一些 tool 其代碼可引用`pkg/`和`internal/`目錄下的 package。 ### /examples 項目(應用或者庫)相關的示例代碼。 ### third_party 外部幫助程序工具,分叉的代碼和其他第三方工具(例如Swagger UI)。 ### githooks Git hooks. ### /assets 項目相關的其他資源依賴。 ### website 放置 網站站點,如 vue,react 寫的網站 ## 總結 * 確定你要寫的項目是 application 還是 library,如果是 application,盡可能有`cmd/`、`pkg/`和`vendor/`目錄;如果是 library,可參考上述規則; * 如果是一個很小的項目,可以不需要所謂的目錄設計,盡可能保持清晰簡單即可;
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看