1 ilylx2008 2024-07-14 10:18:05 +08:00 需要 |
![]() | 2 mogita 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 ryan961 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 ,序列化下就行 |