Categorygithub.com/DataWorkbench/account
modulepackage
0.9.0-alpha
Repository: https://github.com/dataworkbench/account.git
Documentation: pkg.go.dev

# README

DataWorkbench 开源项目结构规范 Golang 语言版本

本项目是 DataWorkbench 开源项目结构规范的 Golang 语言版本。

使用方式

规范

  • 必须使用 Go Modules,不得存在 vendor 目录
  • 必须将 go.modgo.sum 加入到版本管理工具
  • 默认使用 Apache 2.0 许可证,使用其他许可证的项目需使用正确的 LICENSE 文本

结构

  • cmd: 项目构建出来供用户使用的二进制
  • docs: 项目设计文档和用户文档
  • internal: 私有应用和库代码
    • internal/cmd: 仅供内部开发使用的二进制,包括代码生成工具等
  • pkg: 公开的库代码,相对独立,与本项目无强耦合逻辑,可被其他应用导入
  • test: 外部测试应用和测试数据

样例

简单的库

.
├── _lib_.go
├── _lib_test_.go
├── CHANGELOG.md
├── go.mod
├── go.sum
├── LICENSE
├── Makefile
└── README.md

一个比较简单的不分 package 的库可以没有 cmd 等目录

复杂的库

.
├── docs
│   └── README.md
├── pkg
│   └── README.md
├── test
│   └── README.md
├── _package_a_
├── _package_b_
├── CHANGELOG.md
├── go.mod
├── LICENSE
├── Makefile
└── README.md

复杂的库的包需要直接放在根目录下,根据实际情况决定是否需要 pkgtest 目录

应用

.
├── cmd
│   ├── _app_name_
│   │   └── main.go
│   └── README.md
├── docs
│   └── README.md
├── internal
│   ├── cmd
│   │   └── _tool_name_
│   │       └── main.go
│   ├── pkg
│   └── README.md
├── pkg
│   └── README.md
├── test
│   └── README.md
├── CHANGELOG.md
├── go.mod
├── LICENSE
├── Makefile
└── README.md

应用应当将二进制放在 cmd 目录下,仅内部使用的组件应放在 internal/cmd 下。

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author