Go 项目结构 - 最佳实践

Go project structure - Best practice

我需要为生产创建 GO 项目(第一次),我在网上搜索最佳实践并找到以下内容

https://github.com/golang-standards/project-layout

对此我有两个主要问题。

  1. 我看到大多数 go 项目逻辑都在 main 函数中,但是如果我需要一些包含文件的 utils 文件夹,我应该把它放在哪里? 我不希望主要功能是 500 行或更多行代码

  2. 在我们公司,项目应该像下面这样构建

    myproj
      |-src
        |-cmd
        |  |-main.go
        |-utils
        |-vendor
    

我们公司的项目按照上面的结构构建,即项目文件在src文件夹下,对吗? (我们以后会不会遇到这种结构类型的问题)。

我能够在我们的环境中编译这个项目,但是因为一切都在 src 我不确定。

基于https://github.com/anacrolix/torrent

GOPATH
  |-src
    |-projectA
      |-cmd (of projectA)
        |-cmdA
          |-main.go
        |-cmdB
          |-main.go
      |-vendor
      |-pkg lib
      |-pkg libB
    |-projectB
    ...

以下是我在go项目中使用的go项目结构

my-project
     |-> api
     |-> api_test
     |-> controllers
     |-> controllers_test
     |-> models
     |-> routes
     |-> server
     |-> vendor
     |main.go
     |Readme.txt    

进一步了解 go 项目结构

https://golang.org/doc/code.html