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

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

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

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

18200 次点击
所在节点    程序员
138 条回复
mostkia
2020-05-15 18:23:13 +08:00
应该这样写

{"code":"✓","mesg":"发送成功"}
{"code":"✘","mesg":"发送失败"}

手动滑稽
Airon
2020-05-15 18:24:45 +08:00
1.规避传参等字符编码问题
2.方便兼容和后续改动,名字可能修改,但数字没有实际意义 (如 麦当劳 ->金拱门)
3.数据库设计考虑 int 更节省内存 性能好 索引效率更高
4.部分语言不支持字符串 switch-case
感觉各有各的好处吧。
en20
2020-05-15 18:27:42 +08:00
@tantalu 这个确实头疼,后端数据多个空格多个回车以为自己布局 bug
hillwall
2020-05-15 18:31:44 +08:00
@mostkia 蛤蛤
pushyzheng
2020-05-15 18:32:52 +08:00
🐱:淘宝
🐶:京东
🐮:拼多多
kojirou
2020-05-15 18:37:18 +08:00
你们前端是不会用 enum 吗
l00t
2020-05-15 18:44:47 +08:00
字符串的编码、拼写错误、大小写问题都比数字多啊。
revalue
2020-05-15 19:01:19 +08:00
从头到尾没看到个好答案。都水过去了,可惜
cz5424
2020-05-15 19:24:01 +08:00
@revalue 准确的说没有你想要的答案。我就觉得他们说得在理。不过也是分情况的,返回字符串主要是方便展示,存储肯定是 int 方便,如果字符串万年不改,前端去 map 也无所谓
yingo
2020-05-15 19:51:02 +08:00
@revalue 我觉得 102l 楼说的差不多了.
yingo
2020-05-15 19:52:14 +08:00
@yingo #110 102 楼
shiny
2020-05-15 19:57:59 +08:00
你们大多数设计出来的系统寿命都用不到拼多多改成拼夕夕的时候。
这种臆想出来的需求是自己给自己加戏。
MrYELiex
2020-05-15 21:39:14 +08:00
你们写代码不用枚举的?
tairan2006
2020-05-15 21:47:57 +08:00
数字+数据字典
souths
2020-05-15 22:41:08 +08:00
1 是给机器看的 淘宝是给人看的 建议搞下后端 一下子就明白了
icylogic
2020-05-15 22:53:31 +08:00
……anti corruption layer 了解一下,像什么淘宝改名,本来就是应该在这一层解决的事情,而且不同子系统之间对数据模型的关注点不一样很正常……
freakxx
2020-05-15 22:59:52 +08:00
@icylogic #116

哈哈哈就是这词,上次在 json 那讨论贴看到忘了
namelosw
2020-05-15 23:06:52 +08:00
@imlinhanchao 问题是用个列表就解决了……
yanqiyu
2020-05-15 23:19:14 +08:00
要我来设计可能会设计成 1,2,4,8,16
还能表达淘宝+拼多多--->1|2
算是被 C/C++给荼毒了吧,见不得额外开销
90xchun
2020-05-15 23:27:03 +08:00
你这都喜欢就是要干翻一船人的节奏呀,一大堆魔术值真的优雅吗?,enum 出了对外提供多套接口可能有客户端反序列化失败的情况,并没有其他大坑得,数据库查询效率的确存在,如果存在这样问题再想办法也来的急吧,况且代码是给人看的,数据库的字典表难道就不需要维护吗?我是不是随便基于某个类型的数据统计下,还要翻下码表。程序何苦难为程序员吗

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

https://tanronggui.xyz/t/671946

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

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

© 2021 V2EX