type
status
date
slug
summary
tags
category
icon
password
阅读资料

只简单说一下阅读感想
第一点: cmd 目录的组织, grpc 需要两部分: client和 server, 这两部分都的目录结构如下 运行: go run -mod=mod ./cmd/client, 构建 go build -o client -mod=mod ./cmd/client, client 和 server 可以同时在一个项目中开发, 避免分库
 
第二点:protoc 等环境依赖的作用
protoc: the protobuf code generator instructing it how to generate Go code from our .proto file protoc-gen-go: generates Go Protobuf structs protoc-gen-go-grpc: generates Go gRPC service interfaces and clients protoc-gen-entgrpc: generates an implementation of the service interface
第三点: go generate ./... 在代码文件中写好generate 语句, 比如: //go:generate go run -mod=mod entgo.io/contrib/entproto/cmd/entproto -path ./schema, 执行go generate ./...就会全部执行
第四点: Optional Fields 可选字段可能有nil 值问题的表示方式: nil二进制表示是零值字段, 这意味着应用程序无法区分零值和 nil, 使用wrapper type解决, 类似生成的对应 proto 文件是类似google.protobuf.StringValue, 填充字段使用wrapperspb.String("John Doe")
第五点: 对接口crud 的控制 在Annotations方法中, 使用entproto.Service
 
运行时 runtimevscode开发辅助工具: rest client