问一下后端的同学为何你们传参都喜欢 int 1234

2020-05-15 11:29:37 +08:00
 en20

比如接口要传一个请求来源,后端让我传的参是 1 拼多多, 2 淘宝, 3 京东 。。。

为什么不能直接给一个字符串 '淘宝',反正都是要 switch case ,这样也很直观.接手别人的项目里一堆 1234 我都不知道传的是什么,也不写个 map,我很难受

18200 次点击
所在节点    程序员
138 条回复
mxalbert1996
2020-05-15 23:46:55 +08:00
楼主是觉得整数比较和字符串比较是一样的?
ArtIsPatrick
2020-05-16 01:25:57 +08:00
问这种问题的都不是专业程序员
baobao1270
2020-05-16 01:49:32 +08:00
动态类型搞字符串方便,如果后端是静态类型语言,enum 不香吗?
如果要前端显示出来的话,后端应当把要显示的值或映射传给前端
CoderGeek
2020-05-16 02:08:13 +08:00
后端可能是 enum 一个字典集
code msg
0 xxx
1 xxx
只是没给你全部返回给你定义了要传 code 而已
如果换成把字典都返回给你 是否就没意见了
romisanic
2020-05-16 02:19:21 +08:00
似乎希望语义化的都是前端,希望使用数字枚举的多数是后端
其实无非一个把枚举到语义转换的操作放在哪儿的问题,设计上肯定要分开,我可不想将来某个枚举改个名字要去改一堆的代码
前端想要后端做好,我直接展示;后端觉得枚举有了,返给你 key 值你映射一下有什么难的嘛
其实,对于一个量级比较大的服务,夸张点以谷歌为例,每天处理的空格的体积都非常大,如果返回去一堆汉字,那占用带宽更是大的多,前端 cache 一份枚举的缓存,针对枚举的字段客户端使用本地 cache 直接转换不挺好么
另外,如果这个枚举在客户端有需要处理的业务逻辑,到处 switch 或者 if 淘宝、京东,不觉得很 low 么?反正如果后端用这样的枚举如果看到绝壁要骂人的
这样涉及到不同环境,多个语言等情况,比较原始的类型比较安全,基本能始终保证统一,英文字符串也比汉字要强一些
最后,我是后端 🐶
binux
2020-05-16 02:31:38 +08:00
退一步,我可以接受用 ["pinduoduo", "taobao","jd"],但是不接受用中文。
因为一旦用了中文,就没有什么阻止前端直接拿它用来展示了。
而一个会拿枚举类型直接展示的前端,将来一定会在拼多多改名的时候来要求后端也改名的。
FaceBug
2020-05-16 02:49:52 +08:00
@ipwx 这还真不好说,好多人都不知道 360buy 是谁
respect11
2020-05-16 09:28:10 +08:00
这种问题都能拉两页
ilaipi
2020-05-16 10:26:01 +08:00
@ipwx #12 这不是认不认识的问题。假如发生改名问题,你系统里还显示老名字,你的客户会同意吗?你老板会同意吗?
ipwx
2020-05-16 10:35:06 +08:00
@ilaipi 骚年,这个名字(我假设是英文或者拼音)只是为了取代数字枚举,让开发人员开发的时候不至于每次都要查手册。本质还是个枚举,不能直接显示的。。。 就像 @binux 说的那样。
ipwx
2020-05-16 10:35:26 +08:00
前端无论如何都应该自己翻译后端过来的名字。。。
tedzhou1221
2020-05-16 10:39:25 +08:00
@namelosw 我就是那个用 0 、1 、2 、4 模仿 linux 权限的人😏
我们用一个状态码表示一个用户拥有多种权限
GrayXu
2020-05-16 17:37:29 +08:00
带宽占用啊,这一项就相差非常多了。这都不做优化?
0x1001
2020-05-17 01:49:58 +08:00
@revalue 二楼说得挺好的,不是么
imlinhanchao
2020-05-17 09:16:59 +08:00
@namelosw 因为在数据库存一个数字比存列表简单。
namelosw
2020-05-17 09:58:28 +08:00
@imlinhanchao 感觉这个算偷懒,多加个表关联就行了……
imlinhanchao
2020-05-18 08:57:24 +08:00
@namelosw 加表性能上就差了。不過確實這種方法其實在嵌入式上應用比較多。
cydleadingx
2020-06-08 11:40:48 +08:00
做为一个后端,你要是能数据库是 int,对外接口是 string,只能说你很不一般

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/671946

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX