Skip to content

Commit 1ab5a1f

Browse files
committed
update
1 parent e2d080e commit 1ab5a1f

File tree

1 file changed

+118
-42
lines changed

1 file changed

+118
-42
lines changed

readme.md

Lines changed: 118 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -158,71 +158,118 @@ cookiecutter https://github.com/better-go/cookiecutter-go.git --directory="libra
158158

159159
- [x] Mono Repo:
160160

161-
```bash
162161

163-
[~/cookiecutter-go/{{cookiecutter.repo_name}}] [master]
164162

165-
-> % tree . -L 5
163+
- 目录结构简略说明: 对整体目录的 quick look.
164+
165+
166+
```html
167+
-> % tree . -L 3
166168
.
169+
├── app
170+
│   ├── basic // 基础服务: 通常是业务无关的
171+
│   │   ├── demo // 示例:
172+
│   │   └── user // 用户管理:
173+
│   ├── biz // 业务服务: 根据业务切分
174+
│   │   └── member // 会员服务:
175+
│   │   └── order // 订单服务:
176+
│   │   └── cart // 购物车服务:
177+
│   └── std // 业务内统一定义:
178+
│   ├── proto // 统一定义业务状态码
179+
├── deploy // 部署脚本, 服务编排
180+
│   ├── local
181+
│   │   └── Makefile
182+
│   └── staging
183+
│   └── Makefile
184+
├── infra // 基础设施
185+
│   └── tool
186+
└── pkg // 项目积累的 utility 代码库, 与业务无关
187+
```
188+
189+
- 目录结构详细说明:
190+
191+
```html
192+
-> % tree . -L 6
193+
.
194+
├── LICENSE
167195
├── Makefile
168196
├── README.MD
169197
├── app
170-
│   ├── basic
171-
│   │   ├── user
172-
│   │   │   ├── auth
173-
│   │   │   ├── identity
174-
│   │   │   │   ├── Makefile
175-
│   │   │   │   ├── cmd
176-
│   │   │   │   ├── configs
177-
│   │   │   │   ├── docs
178-
│   │   │   │   ├── internal
179-
│   │   │   │   ├── proto
180-
│   │   │   │   └── readme.md
181-
│   │   │   ├── permission
182-
│   │   │   ├── readme.md
183-
│   │   │   └── role
184-
│   │   └── {{cookiecutter.basic_app_name}}
185-
│   │   ├── cmd
186-
│   │   │   └── main.go
187-
│   │   ├── configs
188-
│   │   │   └── configs.toml
189-
│   │   ├── docs
190-
│   │   ├── internal
191-
│   │   │   ├── dao
192-
│   │   │   ├── domain
193-
│   │   │   └── service
194-
│   │   └── proto
195-
│   │   ├── api
196-
│   │   ├── config
197-
│   │   └── model
198-
│   ├── biz
199-
│   │   └── {{cookiecutter.biz_app_name}}
198+
│   ├── basic // 基础服务单元1 : 用户管理/推送/短信/等业务无关的通用服务
199+
│   │   ├── demo // 单个微服务示例:
200+
│   │   │   ├── cmd // 单服务启动入口: 包含 多个启动方式:
201+
│   │   │   │   └── main.go // api server, grpc server, job server, admin server 启动
202+
│   │   │   ├── configs // 外部中间件配置项: db,缓存,mq 等
203+
│   │   │   │   └── configs.toml
204+
│   │   │   ├── docs // 单服务自身文档
205+
│   │   │   ├── internal // 业务逻辑(不对外暴露)
206+
│   │   │   │   ├── dao // 数据层 read/write
207+
│   │   │   │   │   ├── cache // 缓存 r/w
208+
│   │   │   │   │   ├── db // db crud
209+
│   │   │   │   │   ├── http // 调用本服务之外的 http api
210+
│   │   │   │   │   ├── meta.go // dao 资源收敛
211+
│   │   │   │   │   ├── mq // mq r/w
212+
│   │   │   │   │   └── rpc // 调用本服务之外的 rpc(gRPC) api
213+
│   │   │   │   ├── domain // 服务内业务拆分:
214+
│   │   │   │   │   └── demo // 业务单元1 / 业务单元2
215+
│   │   │   │   └── service // API 收敛层(对外收敛内部逻辑, 暴露 API: grpc/http/job/admin)
216+
│   │   │   │   └── service.go
217+
│   │   │   └── proto // 数据定义层: (可对外暴露)
218+
│   │   │   ├── api // grpc + http api 定义
219+
│   │   │   │   └── api.proto
220+
│   │   │   ├── config // config toml 映射 model
221+
│   │   │   │   └── config.proto
222+
│   │   │   └── model // 内部 model
223+
│   │   │   └── model.proto
224+
│   │   └── user // 基础服务2:
225+
│   │   ├── identity // 服务内
226+
│   │   │   ├── Makefile
227+
│   │   │   ├── cmd
228+
│   │   │   │   └── main.go
229+
│   │   │   ├── configs
230+
│   │   │   │   └── configs.toml
231+
│   │   │   ├── docs
232+
│   │   │   ├── internal
233+
│   │   │   │   ├── dao
234+
│   │   │   │   ├── domain
235+
│   │   │   │   └── service
236+
│   │   │   ├── proto
237+
│   │   │   │   ├── api
238+
│   │   │   │   ├── config
239+
│   │   │   │   └── model
240+
│   │   │   └── readme.md
241+
│   │   └── readme.md
242+
│   ├── biz // 具体业务单元:
243+
│   │   │── member // 会员服务
244+
│   │   │ └── cmd
245+
│   │  │ └── main.go
246+
│   │   └── order // 订单服务
200247
│   │   └── cmd
201248
│   │   └── main.go
202-
│   └── std
249+
│   └── std // 项目业务内统一定义(业务状态码, 业务出错 msg 编号)
203250
│   ├── Makefile
204251
│   ├── proto
205252
│   │   ├── config
206253
│   │   │   └── config.proto
207254
│   │   └── error
208-
│   │   └── code.proto
255+
│   │   └── code.proto // 业务状态码
209256
│   └── readme.md
210-
├── deploy
257+
├── deploy // 部署相关脚本: dockerfile 等
211258
│   ├── local
212259
│   │   └── Makefile
213260
│   └── staging
214261
│   └── Makefile
215262
├── go.mod
216-
├── infra
263+
├── go.sum
264+
├── infra // 插件依赖服务: cli, 中间件等
217265
│   └── tool
218-
├── pkg
219-
├── script
220-
└── tmp
266+
└── pkg // 项目中逐步积累的 utility 代码库
267+
268+
46 directories, 24 files
269+
```
221270

222-
39 directories, 15 files
223271

224272

225-
```
226273

227274

228275
- [x] single app:
@@ -250,6 +297,35 @@ cookiecutter https://github.com/better-go/cookiecutter-go.git --directory="libra
250297
```
251298

252299

300+
## 调用链路说明:
301+
302+
303+
- 代码调用链路说明: 以 `app/basic/demo` 服务为例(自顶向下调用)
304+
- Cmd 启动入口: `app/basic/demo/cmd/main.go`
305+
- Service 入口: `app/basic/demo/internal/service/service.go`
306+
- 对外 API 网关: `app/basic/demo/internal/service/outer/outer.go`
307+
- 对内 RPC 网关: `app/basic/demo/internal/service/inner/inner.go`
308+
- 对内 Admin API 网关: `app/basic/demo/internal/service/admin/admin.go`
309+
- 对内 Job 网关: `app/basic/demo/internal/service/job/job.go`
310+
- Proto 数据定义:
311+
- API 层: `app/basic/demo/proto/api/api.proto`
312+
- Config 层: `app/basic/demo/proto/config/config.proto`
313+
- Model 层: `app/basic/demo/proto/model/model.proto`
314+
- Router 路由注册: `app/basic/demo/internal/router/router.go`
315+
- Domain 业务领域:
316+
- 某业务单元: `app/basic/demo/internal/domain/demo/demo.go`
317+
- Dao 数据层操作:
318+
- Meta 聚合(收敛 Dao 层资源): `app/basic/demo/internal/dao/meta.go`
319+
- DB 层: `app/basic/demo/internal/dao/db/db.go`
320+
- Cache 层: `app/basic/demo/internal/dao/cache/cache.go`
321+
322+
323+
## Wiki:
324+
325+
- [x] https://github.com/zeromicro/zeromall/wiki
326+
- [x] 服务详细初始化步骤
327+
328+
253329
## Reference:
254330

255331
- https://github.com/audreyr/cookiecutter-pypackage

0 commit comments

Comments
 (0)