工程目录结构
工程目录结构
使用如下命令创建一个完整的项目
fresh-go new helloworld
你将得到这样的目录结构(包含一些存在于理念,但未创建的文件夹)
.
├── api // 这里存放 proto、OpenAPI/swagger、JSON schema 等文件,不应该有处理逻辑。
| └── helloworld
| └── v1
| ├── greeter_grpc.pb.go
| ├── greeter.pb.go
| ├── greeter.pb.gw.go
| ├── greeter.proto
| └── greeter.swagger.json
|
├── cmd // 这里存放着本项目的应用,每个应用一个文件夹
| └── server // 这是一个应用的入口
| ├── main.go // 应用启动文件
| ├── wire_gen.go // 依赖注入生成的文件
| └── wire.go // 依赖注入描述文件
|
├── configs // 这里存放着配置文件模板或默认配置
| ├── config.yaml // 程序使用到的配置文件,由于可能出现密码等信息,被 git 忽略
| └── config.yaml.example // 程序使用到的配置文件模板,不应该包含密码等信息
|
├── deployments // IaaS、PaaS、系统和容器编排部署配置和模板(未创建)
├── docs // 设计和用户文档(未创建)
├── githooks // git 钩子,目前会在提交前做校验
├── internal // 这里的代码不会被其他项目所依赖,放业务代码比较合适
| ├── conf // 配置相关的代码定义
| ├── repo // 持久化相关代码,db/redis(未创建)
| ├── service // 业务逻辑地址,按文件夹分功能模块(未创建)
| ├── server // gRPC、HTTP、gRPC-Gateway 等服务实例启动/停止
| └── ui // gRPC、HTTP 介入层
| ├── grpc // gRPC 服务入口实现代码
| └── http // HTTP 服务入口实现代码
|
├── pkg // 一些公共的代码,比如日志、中间件等
├── scripts // 放一些脚本文件
├── test // 放测试文件的地方(未创建)
├── .gitignore
├── .golangci.yml
├── buf.gen.yaml
├── buf.lock
├── buf.yaml
├── go.mod
├── go.sum
└── Makefile
Last updated
Was this helpful?