101
maxiujun 2018-08-15 11:00:53 +08:00
jjyy
|
102
maxiujun 2018-08-15 11:01:17 +08:00
jjyy 感觉还是太年轻
|
103
maxiujun 2018-08-15 11:01:42 +08:00
j j y y 感觉还是太年轻
|
104
564425833 2018-08-15 11:05:56 +08:00
哈哈,我公司起码有三个这样的后台。。。每次我取的时候都要预先判断一下是不是数组。
|
105
xianxiaobo 2018-08-15 11:09:16 +08:00 6
这就猪队友了,还好我没遇到楼主这样的人。
|
106
zhangyf 2018-08-15 11:11:47 +08:00
很棒!
|
107
mcluyu 2018-08-15 11:21:29 +08:00
司空见惯。。。我们公司这些,接口写好了,自己连通不通都不试一下的, 等着我去调再告诉他: 某个接口 404,500,405。。。。。没数据了管你丫是个数组还是啥的, 直接返回 null,能怎么办,经历的多了,就无力吐槽了,要想不崩溃就自己加校验, 不然就不管, 直接让它崩了,再让后台改去吧,给一个测试包给他们,自己加班改吧,我回家了
|
108
chniccs 2018-08-15 11:26:20 +08:00
听到是 PHP 我就理解了,这种我也遇到很多。之前做 android,对类型是强校验的,后台 PHP 的经常会出这种问题,你多跟他说几次就好了。毕竟 PHP 里没这个概念。。。
|
109
corningsun 2018-08-15 11:29:27 +08:00
|
110
alexzhou 2018-08-15 11:30:15 +08:00
这难道不是沟通的问题
|
111
miniwade514 2018-08-15 11:36:03 +08:00 6
互联网公司门槛很低的,不要觉得自己做的是什么高端职业,调整一下你的期望值。
这么点事儿还要发帖吐槽,是不是有点咋呼了。。 |
112
rustkeyboard 2018-08-15 11:36:29 +08:00
@nosay,你的头像亮了
|
113
mcluyu 2018-08-15 11:39:42 +08:00
@corningsun 额。。我可能没太说明白,假如这个字段的类型本该是个数组,无数据时不应该返回一个空数组吗? 你直接返回 null ?甚至这个字段就直接消失了?
|
114
zsy979 2018-08-15 11:45:05 +08:00
看到这个问题,弱弱问一下纠结很久的问题,规定过字段返回 json 的情况下,有个字段是 null 我可以自己手动补上,但是如果我接口 error 了,要手动补上所有字段?
|
115
zonyitoo 2018-08-15 11:48:41 +08:00
这看起来用的就是 PHP 写的。。。
|
118
ImJoeHs 2018-08-15 11:57:28 +08:00
@ChristopherWu #99 评论真 j2 精彩
|
119
Alicelj 2018-08-15 11:59:25 +08:00
哈哈哈哈哈,莫名的对自己有信心了哇!
|
120
reus 2018-08-15 12:03:20 +08:00
一看就是用弱类型语言
|
121
inkedawn 2018-08-15 12:04:26 +08:00
这是不懂 json 更不知道 jsonarray 吧……
懂的话说[]当然就知道是啥了,不懂的就可能这样"[]",可能他还奇怪为什么要加个[]呢 |
122
ech0x 2018-08-15 12:06:07 +08:00 via iPhone
各位都是不用写测试的嘛,这个不是写个单元测试跑一遍就能发现的问题嘛……
|
124
chairuosen 2018-08-15 12:09:38 +08:00 3
评论真精彩,洗地的后端真多,这都能洗?
|
125
reus 2018-08-15 12:39:42 +08:00 13
block 了一大堆不配做后端的
是数组就一直返回数组,是字符串就一直返回字符串,一会数组一会字符串,就是不合格的接口 这地谁洗谁是傻逼,大傻逼 |
126
ZSeptember 2018-08-15 12:44:52 +08:00 7
看评论就知道,这个行业现在就是这样的了,一个个 SB 一样,还总想指点别人。
天天吹的,十几年如一年的,都混的不错,真喜欢技术的,技术不错的倒混的一般。 |
128
Ixizi 2018-08-15 12:52:14 +08:00
这个就很坑了。。。
|
129
CastleBUPT 2018-08-15 13:08:22 +08:00 3
这不是一个低级错误吗?
JSON 不是有标准规范的吗? 给人返回非标准规范的 JSON,不主动沟通,难道是前端的锅? 楼里有些人真是吓到我了。 |
130
xjiangiao 2018-08-15 13:12:43 +08:00
我们公司一哥们,写个 for 循环去循环一个数组,结果写成 i=0;i<=array.length,浏览器报错,这哥们告诉我查了一晚上错误不知道哪出错了,说后台 json 给的有问题。
|
131
qq30545 2018-08-15 13:21:29 +08:00
如果最高有十级坑, 这最多算一级
|
132
ren2881971 2018-08-15 13:37:15 +08:00
@shily 那你继续保持吧。
|
133
tinytin 2018-08-15 13:41:29 +08:00
接口返回格式监控。不对就直接报警
|
134
loveCoding 2018-08-15 13:42:07 +08:00
抱怨解决不了问题 ,好好沟通
|
135
dearpork 2018-08-15 13:46:17 +08:00
这算好了 我司运维说拉代码报错了 截图一看用的是 git pull
|
136
devqin 2018-08-15 14:13:34 +08:00
你们为啥不推 graphql ?
|
137
fansangg OP @niaobulashi 你猜错了,14 年毕业的
|
138
frantic 2018-08-15 14:15:25 +08:00
我工作 这几年已经见习惯了
|
139
fengfisher3 2018-08-15 14:17:38 +08:00
少见多怪吧。
|
140
Smilecc 2018-08-15 14:24:58 +08:00 4
作为一个后端我真看不下去这个帖子的评论了,这都能洗?
明明就是写这个接口的人没有带脑子写。 |
141
zsy979 2018-08-15 14:25:50 +08:00
@mcluyu 也不算 error 吧,就是要有一些默认的数据显示,总之就是前端要求返回规定好的字段,是 null 的话返回空的不能不返回
|
142
jeffcott 2018-08-15 14:41:55 +08:00 1
其实就是经验缺乏,很少写接口的人意识不到这个问题;这种情况还是挺普遍的,包括我自己也踩过这个坑,你跟他说一下就好了啊,他也会感激你的;
现在 PHP7 之后也有标量类型声明和返回类型声明了,这种情况应该很好解决; 随手一搜 [PHP 接口返回 JSON 数据保证正确的类型难(或者麻烦)在哪? - V2EX]( https://www.v2ex.com/t/421511) [(3 条消息)PHP 后端很难返回规范的 JSON 数据吗? - 知乎]( https://www.zhihu.com/question/26424910) |
143
chocotan 2018-08-15 14:46:32 +08:00
支持楼主,我也经常遇到奇葩的
比如 content-type 写错的,json 写成这样的 person[name]=Tome,返回的 xml 在两个引号里面的 |
144
jeffcott 2018-08-15 14:48:30 +08:00
再补一句,好多东西都是前后端互相帮忙,你多写一点,我就少写一点;但是我觉得最好有标准化的解决方案;
|
145
ostholz 2018-08-15 14:49:54 +08:00
这点事也拿到 V2 来吐槽?
|
146
xxsjudelaw 2018-08-15 14:51:16 +08:00
等你换的工作多了,呆过的公司多了,合作的人多了。你就明白林子大了什么鸟都有
|
147
mhtt 2018-08-15 14:52:10 +08:00
嚓,我们定的规范就是没有数据,返回 null,看了贴主这个,我感觉自己尴尬了😅
|
148
leeg810312 2018-08-15 14:55:35 +08:00 via Android
这是不是 PHP 特有的,用.net 或 Java 写后端,从没遇到过这样的低级错误
|
149
KgM4gLtF0shViDH3 2018-08-15 14:59:55 +08:00
@NullException #97 我们公司的就不会。。想想还是得去大城市大公司,小地方全是水货。
|
150
reus 2018-08-15 15:17:30 +08:00
@leeg810312 go 写后端也从来不会出这种错误,类型写了数组,那返回的一定是数组,不可能变成字符串。估计吐槽楼主的都是写 PHP 的。PHP 垃圾!
|
151
ayyll 2018-08-15 15:18:55 +08:00 via Android
写过一阵子 php 零基础直接干活的那种 额 也犯过这种错误 反正我自身是知识盲点 前端也。。也没骂我 就稍微解释一下就改了 怎么说 看人的脾气吧 当然 他只是明着没骂我。。不过他人很和气 应该不至于像楼主这种开帖骂的 噢 我不是说楼主不对 我觉着骂也挺对的 做错了嘛反正
|
152
karllynn 2018-08-15 15:19:30 +08:00
是 null 还是有可能的。。。不一定是空数组
|
153
wekw 2018-08-15 15:27:37 +08:00
大家都是程序员,怎么就没有一个人从技术角度来解释问题呢?
原因很简单,后端是 PHP 语言,如果不人为处理,默认就是这个样子,前端如果是 Android,会崩的。 你让他专门处理一下就行了,三行代码的事儿。 --- |
154
Athrob 2018-08-15 15:30:29 +08:00
这楼的回复真是辣眼睛, 这么低级的错误还都喷楼主? 什么风气, 我是后端都看不下去了.
|
155
wekw 2018-08-15 15:35:27 +08:00
@ZSeptember 这就是技术限制了你的想象力了,我们作为程序员,我们被雇佣的目的不是生产完美代码,而是解决实际问题。喜欢技术解决问题的能力就强?解决问题才是创造价值,才能换钱。实际上在现实中沟通能力比技术能力重要多了。
|
156
fansangg OP @Athrob 我才注册的账号,之前也是不知道贵社区什么水平,本来只是因为同事犯的一个小小错误耽误了我挺长时间而来稍稍吐槽一下,没想到会有那么多回复,而且还让人大跌眼镜。
|
158
bolide2005 2018-08-15 15:52:38 +08:00
关键倒还不在于规不规范,关键在于不合逻辑啊
这样的需求,正常后端不是去查数据,然后往一个 list 里 append 数据吗?最后无论 list 是不是为空都直接返回就好了啊。按楼主的描述,后端这哥们难不成还专门判断一下 list 是不是为空,是的话返回个字符串?这操作我看不懂 |
159
zhuangzhuang1988 2018-08-15 15:55:59 +08:00
打一顿就好了
不光 程序员 vs 产品 还有 程序员 vs 程序员 |
160
ihavecat 2018-08-15 15:57:22 +08:00
笑出声,前几天我同事刚遇到这样的测试
|
161
kingme 2018-08-15 15:57:55 +08:00
屏蔽好多后端水货。JSON 格式还需要约定?
|
162
indexxuantest2 2018-08-15 16:00:23 +08:00
果然猪队友
|
163
Lanke0 2018-08-15 16:01:28 +08:00
规范确实是需要的,“[]”确实表现出这个后端水平欠缺。
至于那些使劲批评楼主的,你说别人不会沟通,那对应的,你也不会沟通呀,你到底看不看得清事情的本质呢,最后的解决方案却还是在激化矛盾,你又算什么? 人要有自知自明 |
164
cenxun 2018-08-15 16:01:46 +08:00
```
<?php echo json_encode(['address' => []]); ``` 输出 `{"address":[]}` 不是很懂无脑黑的骚操作 |
165
zhzer 2018-08-15 16:06:17 +08:00
楼主:让开,我来写
|
166
xz410236056 2018-08-15 16:06:18 +08:00
@chniccs PHP 出什么问题我都不觉得奇怪
|
168
zzNucker 2018-08-15 16:18:18 +08:00 1
block 了一堆傻逼洗地的后端
|
169
nosay 2018-08-15 16:18:33 +08:00 1
一提到 php 好多人高潮,贴子中充满了快活的空气。
|
170
zzNucker 2018-08-15 16:18:59 +08:00 1
还有傻逼说要检验空字符串,惹不起。那我是不是要基本类型全检验一遍。
|
171
shadownet 2018-08-15 16:19:44 +08:00 via iPhone
你要学会填坑 而不是抱怨
|
172
MorningBOBO 2018-08-15 16:20:47 +08:00
@564425833 666 那真的是太秀了
|
173
lllllllllllllll 2018-08-15 16:23:26 +08:00
这有什么好喷的啊, 两句话协商下不就好了,在论坛喷人也犯不着吧。。
真想避免沟通 自己学后端 不就行了吗。 |
174
zyxbcde 2018-08-15 16:26:35 +08:00
改的太 JSON 了,我觉得喷的没毛病啊
|
175
fansangg OP @lllllllllllllll 小老弟你有认认真真的看我发的什么内容吗?吐槽和喷人这两个概念你是不是混淆了?沟通过后我明确的告诉他 array 就返回 array,还是当着面说的,然后给我来个"[]"你还想我怎么沟通?
|
176
xinzhognyi 2018-08-15 16:31:16 +08:00
@dearpork 没看懂什么问题,git pull 不可以吗?
|
177
xinzhognyi 2018-08-15 16:33:38 +08:00
第一个问题返回空字符串还能理解,可能没查出来直接赋值了
但第二个有点 low 了吧,返回的还是字符串根本不是数组啊 第二个根本就是逻辑错误了。除非他是脑子抽了一下写错了。 |
178
visonme 2018-08-15 16:40:48 +08:00
用 NULL 代替空数组返回,我能理解,这种形式我们经常用。
而我特别好奇的是这个空是怎么出来的? 确定是不是手工构造的码? |
179
nicholastsao 2018-08-15 16:49:54 +08:00
队友?虽然我也菜 但我遇到过明明有代码规范不遵守 说就是习惯自己那套的 写的代码跟龙卷风一样
不过谁都有长有短 多沟通比较好 谁都有被别人鄙视的时候 |
180
siteshen 2018-08-15 16:51:01 +08:00 2
对题主的遭遇深表同情,遇到个不合格的后端。更要感慨一下 V2EX 的氛围,发帖吐槽不合格的队友,居然会被喷出翔。
数组返回 [] 或者 null 都有一定道理,返回 "" 或 "[]" 就真的匪夷所思了。按这逻辑,数组类型也可能返回 1024, true, false (和 "" 一样同为基本类型),那使用 API 的人岂不是要防天防地防空气了? |
181
guagusi 2018-08-15 17:01:24 +08:00
目测后端是 PHP,哈哈哈
|
182
FrankFang128 2018-08-15 17:04:44 +08:00
傻逼你比想象中多
|
183
FrankFang128 2018-08-15 17:05:00 +08:00
蛋疼写错了,是「傻逼比你想象中多」
|
184
cnbattle 2018-08-15 17:05:27 +08:00
返回"" 不理解, 返回"[]" 到时知道, 挺多 MySQL 存 json 数据的 不够用 text 还是 5.7 后 的 json 数据, 查出来的都是 json 字符串 需要转下,有人就没转, 要么懒 要么就是不想后端再额外的处理, 把压力分到前端
|
185
cnbattle 2018-08-15 17:06:34 +08:00
@cnbattle 返回"" 不理解, 返回"[]" 到时知道, 挺多 MySQL 存 json 数据的 不管用 text 还是 5.7 后 的 json 存, 查出来的都是 json 字符串 需要转下,有人就没转, 要么懒 要么就是不想后端再额外的处理, 把压力分到前端
|
186
chniccs 2018-08-15 17:13:23 +08:00
@cccRaim 我只说了我做 android,java 是类型强校验(为了说明我为什么也会碰到这种情况),没说关弱语言类型什么事。。。
|
187
irobbin 2018-08-15 17:17:00 +08:00
@miniwade514 这是技术论坛,谈论技术问题,提高下 PHP 后台的开发姿势有问题?
|
188
ala2008 2018-08-15 17:18:02 +08:00
@rockyou12 哈哈,不管数据是什么,有数据就返回数据,比如[{...},{...}] or {...},没有数据有统一返回“”的。。当然不是我设计的
|
189
qf19910623 2018-08-15 17:18:05 +08:00
@mcluyu 不管数据正不正确,客户端肯定也必须做校验吧,你得把任何外力可能导致崩溃的因素全部扼杀掉,我后端写代码也这样,不能有任何偷懒心理
|
190
Tlin 2018-08-15 17:26:49 +08:00
你的评论怎么这样怪啊?!就只是返回 json 数据给你用就是啊,那些人怎么想的那么复杂。我也是一个做前端的,这种事情很常见,慢慢沟通就好,不过你这个同事也近 30 了,你就跟他好好说吧,也没有什么动气的。
|
191
lshero 2018-08-15 17:34:48 +08:00
跳槽到后端输出前愿意做 json schema 校验的公司
|
192
chenyu8674 2018-08-15 17:36:04 +08:00
CUDR 就是 21 世纪的流水线,单调的重复性劳动容易使人疲惫,犯这种低级错误并不奇怪
话说一个简单的数据列表获取接口返回 4 套不同数据结构的见过没,当时不是同事拦着我肯定让后端熊孩子当场学会死字的六种写法 |
193
mcluyu 2018-08-15 17:43:24 +08:00
@qf19910623 大多数肯定会校验的,但不是“任何”, 有时候只是觉得与其再这样苟延残喘的让它运行着,还不如直接让它崩了,把问题放大暴露出来,还能及时修改。。。
|
194
Zzdex 2018-08-15 17:47:26 +08:00
通过一个规范问题 就说人家菜,过分了吧
|
196
LudwigWS 2018-08-15 17:51:32 +08:00
@miniwade514 是啊,都是码农民工
|
197
hourui 2018-08-15 18:02:40 +08:00
鲁棒性不够
|
198
ben1024 2018-08-15 18:03:45 +08:00
这锅 PHP 不背,处理 JSON PHP 算是好用的
|
199
hoosin 2018-08-15 18:23:30 +08:00
这样的确不好,但是楼主你也可能不懂后端
|