我从来没有用自己的包创建一个大项目,但是对于这个项目,我忍不住要查看同一目录中的10多个.go文件。我试图将类似的函数和文件分割到单独的目录中,并且据我了解,如果Go将仅以子包的形式导入文件,Go将仅从子目录中读取文件。
这是我当前的结构:
src
├── client.go
├── conn.go
...
├── router
│ └── router.go
└── datagrams
└── datagrams.go
[我预计这种情况很快会变得一团糟,因为router.go
使用在datagrams.go
中定义的结构,它们将彼此依赖。
我的第一个问题是,我是否正确使用软件包?还是我只是为了我自己的组织目的而尝试滥用此功能?
第二,有没有更好的方法来组织我的.go
文件,还是我停留在一个大目录中以进行梳理?
[我曾尝试查看the language itself之类的其他大型Go存储库,但是除了识别fmt
和math
之类的一些程序包之外,我无法做出正面或反面的描述。
我通常将此项目应用于我的项目https://github.com/golang-standards/project-layout