如果用 tag,每个字段都要重写一遍,太麻烦了 有没有默认就是小写的方式
1
6IbA2bj5ip3tK49j 2019-04-30 10:21:52 +08:00
没有,脑子一拍,要省去 private 和 public,替开发人员减轻思维负担。
|
2
sunjourney 2019-04-30 10:33:50 +08:00
code gen
用自制 DSL 写 go 是基本操作哈 |
3
sunjourney 2019-04-30 10:36:10 +08:00
提供一个思路。套一个接口输出的中间,先用 JSON parse 成 map,替换 key,序列化。
|
4
ahmcsxcc OP @sunjourney #3
这也太麻烦了,还不如直接写 tag |
5
hmoe 2019-04-30 10:40:21 +08:00 1
|
6
sunjourney 2019-04-30 10:43:33 +08:00
@ahmcsxcc #4 找轮子啊,应该有现成的 json encoder 吧,换掉内建的
|
7
MiniGhost 2019-04-30 10:44:39 +08:00
|
8
hash 2019-04-30 10:45:09 +08:00
没有,估计 Google 内部工具链很全,这种模板代码都是机器生成而不是人来写.
|
10
faceair 2019-04-30 10:52:05 +08:00
用 jsoniter 的 NamingStrategy 插件
示例 https://github.com/json-iterator/go/blob/0ff49de124c6f76f8494e194af75bde0f1a49a29/extra/naming_strategy_test.go#L27 |
11
ahmcsxcc OP |
12
WilliamYang 2019-04-30 12:26:44 +08:00
其实 Goland 里搜索插件, 有添加 tags 的插件的, 可以是 snake_case 或 camelCase
|
13
ahmcsxcc OP @WilliamYang #12
这还是用 tag 啊 |
14
zzzzzzzzzp 2019-04-30 12:59:04 +08:00
https://github.com/fatih/gomodifytags 这个挺好使的,vim 和 vscode 都用的这个
|
15
ahmcsxcc OP @zzzzzzzzzp #14
哥啊,这还是用 tag |
16
liuxey 2019-04-30 13:14:37 +08:00
我也觉得自定义 DSL 是用 Go 的基本技能,不少框架都有,说简单点就是 Code Generator
|