分享一个猪队友,都 8012 年了居然还有那么菜的后端可以混迹在互联网公司!

2018-08-15 02:08:00 +08:00
 fansangg
今天快下班的时候,写完一个功能正准备测试,然后调接口的时候发现 token 过期了,然后重新登录。

登录的流程之前走了不下一百遍,没想到居然报错了!查看日志发现是 json 解析报的错,如何我看了一下返回的 json 格式,发现地址列表返回的居然是空字符串

``` address:"" ```

然后我找对接的后台同事说,我说空的话你要返回一个 jsonarray 啊,就是[]。



然后等了 10 几分钟,后台的兄弟和我说改好了。然后我再调了一遍,依然是报错,然后看了一下返回的数据...

address:"[]"

我的天呐,真的是改好了,太优秀了!从业以来遇到过最优秀的同事!看起来也应该有 30 岁了,怎么还会那么菜!他是怎么混过来的!
31738 次点击
所在节点    程序员
319 条回复
psychoo
2018-08-16 17:43:00 +08:00
评论真的很奇怪
stanley0black
2018-08-16 17:49:50 +08:00
没做前端之前不知道原来做后端真的是轻视前端的,以前自己写接口写页面.现在找后端要个接口,自己给的是对象,硬是要我循环写个列表出来,倒是给个数组啊.错了还不认
jacksonhr
2018-08-16 17:51:23 +08:00
@alvince php 写出这种返回值只能说这货写法有问题,我之前也写过 php,打印的话确实是"[]"这种格式(因为打印 dump 不管之前什么格式全部转换成字符串),但是接口返回都输出之类的都是正常的[]或者 null 的,不会出现应该是[]结果成"[]"情况的
ramen
2018-08-16 18:02:44 +08:00
以下观点真不是为了杠
1.看起来 30 岁不一定是 30 岁,也许是个新人,长的老点。我 20 出头的时候,就有人说我 40 多。
2.有的人不善于沟通,很容易陷入他人思维。可能没理楼主的具体意思,懒得想,还不好意思问。不求甚解+懒+不善沟通,所以楼主说要中括号就加上了。其实这种人比“菜”更可怕。
3.因为菜就可以指责,是否能容忍他人对你的指责?
4.我还是没明白,为什么要设计成:address 有值返回字符串,空的话返回数组
5.两个程序员随便就把接口定了(或者没定),随便就把接口改了。现在都这么随意了么?
encro
2018-08-16 18:05:20 +08:00
假设数据库
$data = $db->select('*')->from('adress');
本来一行代码:
return json_encode($data);
你要求人家写
$data->address?:[]
return json_encode($data);
然后对方写成了
$data->address?:"[]"
return json_encode($data);
MrSheng
2018-08-16 18:07:29 +08:00
可能是历史遗留问题。
之前有个项目也是 json,空字段返回 null,结果对接的说怎么能是 null 呢,全部改成"",后来才发现公司之前就是这么约定的,你按照规范给他 null,他就报错了 --- 他根本没校验过对吧,为了能然系统跑起来你不得不吧所有的 null 转换为""。
更常见的是,前端给你的是 json,但是 Content-type 你看看有几个对的?
azh7138m
2018-08-16 20:52:03 +08:00
@Govda 估计这个老哥看错了
array = begin-array [ value *( value-separator value ) ] end-array

空数组应该返回 []
jss
2018-08-17 07:59:57 +08:00
你可拉到吧,空就是空 为什么要给你 array
ragnaroks
2018-08-17 08:44:00 +08:00
后端肯定不是 php/.net/java,起码自带 json 编码方法出来都是合规的.

看了上面的回复我觉得没有必要面算法了,直接问他 json 空数组怎么表示
lengleng
2018-08-17 08:44:27 +08:00
心智不熟啊
fansangg
2018-08-17 09:12:59 +08:00
@jss 嗯,你说的都对,好好学习,提升自己,让行业以你为准则,加油
KuroNekoFan
2018-08-17 10:29:55 +08:00
在 json 格式的前提下,返回"[]"这种我觉得是怎么都没得洗的吧,只能说这个人是连 json 最基本最基本的规范都不清楚
hermithacker
2018-08-17 10:31:40 +08:00
后端,客户端本就互不信任,传递数据两边都得做好数据校验和异常处理。说猪队友就过了,人有所长,只盯着人短处没意思了
NicholasYX
2018-08-17 10:56:53 +08:00
我觉着你们可能没有看清楼主说的是 空数组返回的是 “” 而不是[] address 本来就是数组为什么要返回“” 你们还在这杠
fansangg
2018-08-17 10:59:21 +08:00
@NicholasYX 我也觉得你可能没理解那些杠的人,可能在他们的认知里,空我就给你返回"",我管你什么类型。
NicholasYX
2018-08-17 11:20:37 +08:00
@fansangg 哈哈哈哈哈,数组能传出来个“”也挺牛逼的 手动滑稽
royzxq
2018-08-17 12:07:01 +08:00
弱弱的问下哪个语言 /框架空数组能返回 "[]" 的, 我想见识见识。
mingzepeng
2018-08-17 12:34:42 +08:00
虽然这个问题在于后端,不过看到楼主这种态度,我是不敢招的。这种小问题都能发个帖来上纲上线,真是幼稚
KasonPasser
2018-08-17 13:11:51 +08:00
有一句后端的名言是:不要相信前端传过来的所有数据。
同样,也可以反过来:前端你不要相信后端能给到你所想要的数据格式。
fansangg
2018-08-17 13:41:13 +08:00
@mingzepeng 彼此彼此

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

https://tanronggui.xyz/t/479858

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

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

© 2021 V2EX