go-layout

command module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 16, 2022 License: MIT Imports: 7 Imported by: 0

README

go-layout 业务框架

Website GitHub code size in bytes GitHub GitHub issues GitHub go.mod Go version GitHub tag (latest by date) GitHub pull requests GitHub commit activity GitHub last commit GitHub repo size GitHub language count GitHub top language

TODO

  • 事件总线

安装

go install github.com/comeonjy/go-kit/cmd/kit

kit new demo-project

前置工作

go install \
	github.com/google/wire/cmd/wire@latest \
	golang.org/x/tools/cmd/stringer@latest \
    github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@latest \
    github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2@latest \
    google.golang.org/protocpbuf/cmd/protoc-gen-go@latest \
    google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest \
    github.com/envoyproxy/protoc-gen-validate@latest

目录结构

.
├── api [ pb ]
├── cmd [ 程序入口 ]
├── configs [ 配置 ]
├── docs [ 文档 ]
├── internal
│   ├── domain [ DDD领域层 ]
│   │   ├── aggregate [ 聚合 ]
│   │   ├── entity [ 实体 ]
│   │   ├── repository [ 仓储接口/资源库 ]
│   │   └── valobj [ 值对象 ]
│   ├── infra [ DDD基础设施层 ]
│   │   ├── event
│   │   ├── mq 
│   │   └── persistence [ 数据库持久层 ]
│   ├── server [ DDD接口层 ]
│   └── service [ DDD应用层 ]
├── main.go
├── pkg [ 工具库 ]
├── tests [ 测试包 ]
└── third_party [ 三方包 ]


版本管理( SemVer

版本格式:主版本号.次版本号.修订号

  1. 主版本号:当你做了不兼容的API修改
  2. 次版本号:当你做了向下兼容的功能性新增
  3. 修订号:当你做了向下兼容的问题修正

Git Flow 分支管理

  • master:主分支(用于版本发布,始终与线上一致)
  • dev:开发分支(用于开发,提测时,从dev检出release-1.0.0分支)
  • release: 预发布(用于测试,测试中有问题直接修改,测试完成后合并入master和dev)
  • feature-*:功能分支(用于功能开发,完成后合并到dev)
  • hotfix-*:修复bug(从master分出来,完成后合并到master和dev)

Git提交规范

  • feat:新功能(feature)
  • fix:修补bug
  • doc::文档(documentation)
  • style: 格式(不影响代码运行的变动)
  • refactor:重构(即不是新增功能,也不是修改bug的代码变动)
  • test:增加测试
  • chore:构建过程或辅助工具的变动

import 规范

import (
    // 标准库

    // 三方库

    // 本地库
)

API规范

Restful

  • 返回值结构 错误示例:
{
  "code": 1001,
  "msg": "数据更新失败"
}

成功示例:

{
  "xxx": "xxx"
}

JetBrains OS licenses

go-layout是根据JetBrains s.r.o 授予的免费JetBrains开源许可证与GoLand一起开发的,因此在此我要表示感谢。

License

© JiangYang, 2020~time.Now

Released under the Apache License

参考资料

[1] Factor12

[2] DDD分层架构实践

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api
v1
Package v1 is a reverse proxy.
Package v1 is a reverse proxy.
internal
domain/aggregate
Package aggregate @Description TODO @Author jiangyang @Created 2022/3/16 11:21 PM
Package aggregate @Description TODO @Author jiangyang @Created 2022/3/16 11:21 PM
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL