1
ilylx2008 2024-07-14 10:18:05 +08:00
需要
|
![]() |
2
ck65 2024-07-14 10:37:43 +08:00 via iPhone
dto 和 dao 各一份(二者异构大有可能)
|
3
zjh7890 2024-07-14 10:38:27 +08:00
可以利用 IDEA 插件让 ChatGPT 帮你生成样板代码
|
![]() |
4
smalnote 2024-07-14 14:01:29 +08:00 ![]() probobuf 结构自动生成的,要加 gorm model 的 tag 要改 proto 文件重新生成,而且同一个字段在 protobuf 中的类型跟在 gorm model 的类型可能不一样(int, int32, int64, uint, etc),分开定义后期迭代省事,除非预期不用改。
|
5
ninjashixuan 2024-07-14 15:36:31 +08:00
就算不是微服务也是两套吧
|
6
dobelee 2024-07-14 16:55:56 +08:00
手撸一个 pb ,让 ChatGPT 自动生成 DDL 、GORM.
|
7
caicaiwoshishui 2024-07-14 17:03:17 +08:00
肯定两套呀,po 的数据类型不一定都会在 pb 展示呀
|
8
zzhaolei 2024-07-14 19:10:38 +08:00 ![]() 需要两套。可以考虑 copier 库,可以根据字段名,复制两个结构。
|
![]() |
9
wenyuhe 2024-07-14 20:59:19 +08:00
两者异构很正常, 但是枚举可以定义在 pb 里。该关联的关联,该分开的分开
|
11
gvison 2024-07-15 09:11:35 +08:00 ![]() 使用工具连接数据库之后就可以生成 pb 和 gorm 两套对应的代码,示例 https://go-sponge.com/ui/micro-service
|
![]() |
12
ryalu 2024-07-15 09:22:19 +08:00 ![]() @zzhaolei #8 这个是使用 reflect 实现的,接口中使用性能堪忧。推荐使用 https://github.com/jmattheis/goverter 脚本预生成转换代码,好用、性能高
|
13
zzhaolei 2024-07-15 09:28:36 +08:00
@ryalu 我使用的场景就是 dao 到 dto ,bench 的速度还行,比 mapstructure 快多了。你说的这个也不错,就是有一点麻烦。
|
![]() |
14
loux 2024-07-15 09:59:33 +08:00
pb 可以用自定义结构体类型 google.protobuf.Struct ,序列化下就行
|