W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
我們創(chuàng)建了 kratos-layout 作為使用 kratos new 新建項(xiàng)目時(shí)所使用結(jié)構(gòu),其中包括了開發(fā)過程中所需的配套工具鏈( Makefile 等),便于開發(fā)者更高效地維護(hù)整個(gè)項(xiàng)目,本項(xiàng)目亦可作為使用 Kratos 構(gòu)建微服務(wù)的工程化最佳實(shí)踐的參考。
使用如下命令即可基于 kratos-layout 創(chuàng)建項(xiàng)目:
kratos new <project-name>
生成的目錄結(jié)構(gòu)如下:
.
├── Dockerfile
├── LICENSE
├── Makefile
├── README.md
├── api // 下面維護(hù)了微服務(wù)使用的proto文件以及根據(jù)它們所生成的go文件
│ └── helloworld
│ └── v1
│ ├── error_reason.pb.go
│ ├── error_reason.proto
│ ├── error_reason.swagger.json
│ ├── greeter.pb.go
│ ├── greeter.proto
│ ├── greeter.swagger.json
│ ├── greeter_grpc.pb.go
│ └── greeter_http.pb.go
├── cmd // 整個(gè)項(xiàng)目啟動(dòng)的入口文件
│ └── server
│ ├── main.go
│ ├── wire.go // 我們使用wire來維護(hù)依賴注入
│ └── wire_gen.go
├── configs // 這里通常維護(hù)一些本地調(diào)試用的樣例配置文件
│ └── config.yaml
├── generate.go
├── go.mod
├── go.sum
├── internal // 該服務(wù)所有不對(duì)外暴露的代碼,通常的業(yè)務(wù)邏輯都在這下面,使用internal避免錯(cuò)誤引用
│ ├── biz // 業(yè)務(wù)邏輯的組裝層,類似 DDD 的 domain 層,data 類似 DDD 的 repo,而 repo 接口在這里定義,使用依賴倒置的原則。
│ │ ├── README.md
│ │ ├── biz.go
│ │ └── greeter.go
│ ├── conf // 內(nèi)部使用的config的結(jié)構(gòu)定義,使用proto格式生成
│ │ ├── conf.pb.go
│ │ └── conf.proto
│ ├── data // 業(yè)務(wù)數(shù)據(jù)訪問,包含 cache、db 等封裝,實(shí)現(xiàn)了 biz 的 repo 接口。我們可能會(huì)把 data 與 dao 混淆在一起,data 偏重業(yè)務(wù)的含義,它所要做的是將領(lǐng)域?qū)ο笾匦履贸鰜恚覀內(nèi)サ袅?DDD 的 infra層。
│ │ ├── README.md
│ │ ├── data.go
│ │ └── greeter.go
│ ├── server // http和grpc實(shí)例的創(chuàng)建和配置
│ │ ├── grpc.go
│ │ ├── http.go
│ │ └── server.go
│ └── service // 實(shí)現(xiàn)了 api 定義的服務(wù)層,類似 DDD 的 application 層,處理 DTO 到 biz 領(lǐng)域?qū)嶓w的轉(zhuǎn)換(DTO -> DO),同時(shí)協(xié)同各類 biz 交互,但是不應(yīng)處理復(fù)雜邏輯
│ ├── README.md
│ ├── greeter.go
│ └── service.go
└── third_party // api 依賴的第三方proto
├── README.md
├── google
│ └── api
│ ├── annotations.proto
│ ├── http.proto
│ └── httpbody.proto
└── validate
├── README.md
└── validate.proto
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: