Go项目自用结构

背景

目前,Go项目结构好像没有一些约定,于是乎,我个人参考了社区内的实践,这个简单描述一些嘻嘻。

结构

大概项目如下:

➜  hello tree -L 2
.
├── cmd
│   ├── app
│   └── app2
├── config
├── docs
├── examples
│   └── deployments
├── hack
│   ├── build
│   ├── run
│   └── tools
├── internal
├── pkg
│   └── logs
├── tests
└── web

cmd

cmd目录主要是用于放application相关代码的,每个 application 都应对应到cmd下的子目录,简单可以理解为main()的入口函数

config

配置文件相关

docs

可选目录,也可以利用根目录的readme.md

examples

多数是与部署脚本相关

hack

多数与项目相关的工具

build

项目构建相关,如Dockerfile等

run

项目启动相关,如服务的启动脚本等

internal

私有,该目录下代码只能在该目录上级目录下引用。示例$GOPATH/src/github.com/ysicing/hello/internal/nb只能在$GOPATH/src/github.com/ysicing/hello引用。

pkg

通用代码

tests

测试代码或者测试脚本

web

前端资源相关,这个具体情况可修改

Last modification:October 26th, 2019 at 08:45 pm
搞技术/肝文章不易,恳请随意打赏 OwO

Leave a Comment

One comment

  1. ysicing

    虽然我么很好的遵守哈哈哈