gobay

command
v1.1.5 Latest Latest
Warning

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

Go to latest
Published: Sep 26, 2023 License: MIT Imports: 11 Imported by: 0

README

如何使用

生成项目文件夹

# git clone && go install ./cmd/gobay/
gobay new github.com/shanbay/my_proj

需要安装的一些二进制

初始化

在目录中 git initpre-commit install 来注册 hooks,它会在每次 commit 前检查代码格式和语法。

目录结构

app 目录

核心代码,包含各个 server 的启动和 handler 代码。以及 models 等部分的代码。大部分场景下你需要在这个目录下编写代码。

cmd 目录

程序入口,gobay 可以通过参数指定运行 grpc openapi asynctask 等多种 server 中的一个 如果需要增加新的 server 类型,请在cmd目录下增加新的入口。

spec 目录

一些扩展会生成一部分代码,这些扩展依赖某些源文件(如 protobuf 的 proto 文件、oapi 的 yaml 文件、ent 的 tmpl sehema 文件等)。作为约定,这些源文件统一放在spec目录下。

gen 目录

一些扩展会生成一部分代码,比如oapi-codegen, protobuf, ent等,作为约定这些生成的代码统一保存在gen目录里。如果用到这些扩展需要使用相应的openapi, grpc, ent工具来生成。

生成测试

使用 gotests 为已经写好的代码生成测试,详见 gotests --help

Makefile 中的常用功能

make clean

清理临时目录

make build_debug

编译用于 debug 的二进制到 .build 目录

make run

debug 模式运行代码

make build_release

编译用于生产环境的二进制到 .dist 目录

make test

运行测试

make coverage

运行测试并查看覆盖率网页

make coverage_fail

运行测试并检查覆盖率是否达标(Makefile 中的 COVERAGE_FAIL_UNDER 变量)

make fmt

format 代码

make lint

lint 检查

make tidy

等同于go mod tidy

make ensure

等同于go mod download

make genswagger

根据 Makefile 中的 OAPI_TARGET(默认为 spec/oapi/main.yml)来生成代码到 gen 目录

make entinit

用法:make ARGS="UserBook TableName TableNameTwo" entinit

会生成 model 的 schema 到 spec/schema 目录,需要将它补充完整。详见ent quick start

make entdesc

预览 schema 会生成的数据库结构

make entgen

根据 schema 生成代码到 gen 目录

贡献代码

更新 templates

更新完静态文件(templates 目录),需要将静态文件打包成.go 文件:

# go install github.com/markbates/pkger/cmd/pkger@latest
pkger -include /cmd/gobay/templates -o cmd/gobay/

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

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