如题,鄙人前端,后端技术栈是 Go+Protobuf ,感觉经常类似的数据结构需要在 protobuf ,domain 和 db 层定义三遍,还得写 a 转 b ,b 转 a ,b 转 c ,c 转 b 的函数,如果复杂结构还得多层遍历,大家也是同样的做法吗
1
Makabaka01 19 小时 29 分钟前
在国内几个 Top 大厂都干过,我只能说。大部分人都直接把 protobuf 的结构到处传,根本不定义的。
|
2
guyeu 19 小时 16 分钟前
先写 domain 层,自然就会给 domain 层的 API 定义数据类,然后把 domain 层接入 db 层,这个时候针对数据库做设计,不管是定义数据库实体生成建表语句还是通过建表语句生成代码定义,都需要在 domain 层接入的时候写一层转换,这层转换有一些工具可以辅助,但是自己写也是很自然的(有 AI 之后可以直接丢给 AI 写)。之后再定义接入层的时候(或者把以前定义的接入层接入 domain 层 ),再写相应的转换逻辑。
按照我的理解,接入层是有一些逻辑的,最经典的电商下单操作,接入层收到的不管是 protobuf 还是 json ,都需要从对应的实体类里拆出对应的参数,比如调一下 account domain 的 api 预扣余额,然后调一下 inventory domain 的 api 预扣库存,都成功之后再调一下结算,发货。这里面每一个 domain 层的调用的参数都不太一样,也不可能会存在说需要把 api 的入参到处传的情况。 |
3
willchen 13 小时 29 分钟前
个人建议是手动,对外接口的 protobuf ,最好遵守“接口仅提供必要字段”,后期也可控
|
4
fov6363 10 小时 11 分钟前
AI 帮写,看代码也很头疼,都是 a 转 b ,b 转 c ,重复代码极高,特别想用一个类型在所有服务共用
|