• 请不要在回答技术问题时复制粘贴 AI 生成的内容
fansangg
V2EX  ›  程序员

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

  •  
  •   fansangg · Aug 15, 2018 via iPhone · 36237 views
    This topic created in 3002 days ago, the information mentioned may be changed or developed.
    今天快下班的时候,写完一个功能正准备测试,然后调接口的时候发现 token 过期了,然后重新登录。

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

    ``` address:"" ```

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



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

    address:"[]"

    我的天呐,真的是改好了,太优秀了!从业以来遇到过最优秀的同事!看起来也应该有 30 岁了,怎么还会那么菜!他是怎么混过来的!
    Supplement 1  ·  Aug 15, 2018
    太优秀了,一觉醒来居然那么多回复,看到一堆人在说没有统一规范,没有好好沟通,我真是纳闷了,json 格式规范你们看过吗?还要订什么规范?我从业四年真的没见过这样返回数据的。
    Supplement 2  ·  Aug 17, 2018
    各位「猪」们不要再回复了,各位有浏览论坛的时间不如好好学习,希望各位都能成为大牛,让世界以你为规范,加油!💪
    319 replies  •  2018-08-20 03:09:59 +08:00
    1  2  3  4  
    ❮ ❯
    aaronysj
    aaronysj
    Aug 15, 2018
    201
    PHP 肿么了,别没事就黑啊
    hoosin
    hoosin
    Aug 15, 2018
    202
    @fansangg 写 "hello world" 也算写过吗?
    CasualYours
    CasualYours
    Aug 15, 2018 via Android
    203
    老哥,你这是引战贴啊。
    Viztor
    Viztor
    Aug 15, 2018
    204
    楼主说的没错啊。
    只是好好沟通不行吗,又不难改。没必要开嘲讽。

    程序员并一定是年纪越大越厉害的。厉害的好像都喜欢做管理?
    fansangg
    fansangg
    OP
    Aug 15, 2018 via iPhone
    205
    @hoosin 所以你是从哪看出来我不懂后端又是从哪看出来我只写过 hello world 呢?
    fansangg
    fansangg
    OP
    Aug 15, 2018 via iPhone
    206
    @hoosin 是 java spring 和 nodejs express 在你的认知中难到只能让人止步于 hello world ?还是我认为你不懂你就是不懂?
    hoosin
    hoosin
    Aug 15, 2018
    207
    @fansangg 不要把 Express 跟 Spring 相提并论
    EPr2hh6LADQWqRVH
    EPr2hh6LADQWqRVH
    Aug 15, 2018
    208
    @hoosin 轮椅再高级也教不会你走路
    codz
    codz
    Aug 15, 2018
    209
    即便是一个 jsonarray 也是需要沟通, 这个 json 长度, 每个字段里存储的数据格式等,不能太笼统的就要个 json.
    markx
    markx
    Aug 15, 2018
    210
    错了就是错了啊。 我不明白为什么大家都嘲讽楼主。
    hoosin
    hoosin
    Aug 15, 2018
    211
    @avastms 我只是想表示楼主对 Spring 有点误解
    flight2006
    flight2006
    Aug 15, 2018
    212
    用 java spring mvc 的话想返回"[]"都有点 费劲吧。。。
    Weny
    Weny
    Aug 15, 2018 via iPhone
    213
    @hoosin 可能楼主觉得 spring 就是春天写的代码
    hoosin
    hoosin
    Aug 15, 2018
    214
    @Weny 需要帮忙装 Tomcat 吗,五块钱一次
    fansangg
    fansangg
    OP
    Aug 15, 2018 via iPhone
    215
    @hoosin 我有把 spring 和 express 拎出来讨论吗?你的主页描述讲的很真实,以后搞清楚了论点是什么再出来杠人
    hoosin
    hoosin
    Aug 15, 2018
    216
    @fansangg 感谢关注
    qiukong
    qiukong
    Aug 15, 2018
    217
    PHP 的 array()用 json_encode 输出是[]没错,可能你们程序框架哪出了问题,把数组转换成字符串了。
    Sharuru
    Sharuru
    Aug 15, 2018
    218
    回复里一些前斯林惹不起惹不起。
    Tink
    Tink
    Aug 15, 2018 via iPhone
    219
    @hoosin #199 洗的不专业
    GG668v26Fd55CP5W
    GG668v26Fd55CP5W
    Aug 15, 2018 via iPhone
    220
    我也做 php 的,表示这个后端水平是真的不行,返回"[]"这个没法洗。
    ferock
    ferock
    Aug 15, 2018
    221
    洗的不专业
    lepig
    lepig
    Aug 15, 2018❤️1
    222
    这点小事也跑来吐槽 4 年了还这么心浮气躁
    laoyur
    laoyur
    Aug 15, 2018
    223
    @hoosin 说的都是啥,毫无逻辑,还强行黑 Express
    mingyun
    mingyun
    Aug 15, 2018
    224
    为什么标题是 8012 年?
    bytewalk
    bytewalk
    Aug 15, 2018
    225
    @mingyun #224 应该是 8102 哈哈哈哈哈
    mkeith
    mkeith
    Aug 15, 2018 via iPhone❤️1
    226
    估计本来 addr 变量默认值是“”,查询到值后赋值数组吧,然后让返回[],就直接修改为“[]”了吧,本来可以返回 null 或者不返回这个字段值
    ReysC
    ReysC
    Aug 15, 2018
    227
    我也有过这么奇葩坑队友的时候,而且次数不少。
    realkaiway
    realkaiway
    Aug 15, 2018 via iPhone
    228
    你这还算好的…你敢信我同事写后台的接口我 fetch 之后不返回任何东西嘛,我当时看他的眼神就有点崇拜了
    AV1
    AV1
    Aug 15, 2018
    229
    经常遇到服务器返回 50X 错误的笑笑不说话
    firebroo
    firebroo
    Aug 16, 2018 via Android
    230
    我觉得第一次可能是没沟通好,第二次返回那个我觉得就是你同事真的菜。。
    楼上那么多人黑 PHP 干嘛,写别的有优越感?PHP 真的挺好用的呀
    zzNucker
    zzNucker
    Aug 16, 2018
    231
    某些人的优越感,上来就“你不懂后端”,然后开始意淫贬低“写过 hello world 也算写过吗”,“不要把 Express 跟 Spring 相提并论” 。。。 真是笑吐了

    真替后端兄弟们感到羞耻
    fansangg
    fansangg
    OP
    Aug 16, 2018 via iPhone
    232
    @zzNucker 没什么意思,一个话题就炸出了社区里那么多水货,连基本常识都没有就上岗写代码了,行业发展大不如前了。
    yukunyi
    yukunyi
    Aug 16, 2018❤️2
    233
    我的天,评论里的都是程序员么。。。一个 json 格式都不了解的 30 岁的后端,还能洗?咋混出来的
    yukunyi
    yukunyi
    Aug 16, 2018
    234
    还有,楼主有提过是什么语言框架么,是怎么扯到 spring 和 php 上面的,这个和语言框架有毛关系
    forYou
    forYou
    Aug 16, 2018
    235
    搬个小板凳
    iceheart
    iceheart
    Aug 16, 2018 via Android
    236
    1.有没有定接口协议?
    没规范,那是规范制定上有问题。
    2.有没有经过测试?
    没测试,那是工作流程上有问题。
    3.如果问题 1 是 yes,2 也是 yes,那就没这个问题。
    如果 1 和 2 都是 no.那就扯皮吧
    jzz7280
    jzz7280
    Aug 16, 2018
    237
    看了评论,猪队友挺多的
    xhf3894
    xhf3894
    Aug 16, 2018
    238
    我也遇到过,对象为空死活要返回空字符串,明明那个对象一般是 Number、json 等
    xiaogan18
    xiaogan18
    Aug 16, 2018
    239
    你确定人家不是故意的?没有服务端能忍受前端在那指手画脚吧
    xiaogan18
    xiaogan18
    Aug 16, 2018
    240
    说猪队友过分了,后端精力大部分都放在业务逻辑处理了,接口都是随手一写,你只能说他不用心。
    我是前后端都做,想要什么写什么
    flyingghost
    flyingghost
    Aug 16, 2018❤️1
    241
    抛开 lz 略失君子风度的瑕疵之外,
    问题本身绝对是低级问题,是根本连 json 规范的类型系统都没搞清楚,连接口约定都不遵守的低级问题。
    整楼居然还能发现这么多习以为常的开发人员,吓了我一大跳啊!
    emmmmmm,本来以为 v2 上大拿车载斗量,精英过江之鲫,小白都瑟瑟发抖不敢说话呢。。。
    颠覆了,颠覆了啊。
    fansangg
    fansangg
    OP
    Aug 16, 2018
    242
    @xiaogan18 没什么好洗的了,缺乏常识就是缺乏常识,就算你再怎么洗,白丁也洗不成鸿儒;还有就是如果一个人告诉你说 1+1 是等于 2 的也算是指手画脚的话,那就算是我在指手画脚吧。
    iamlsd001
    iamlsd001
    Aug 16, 2018
    243
    按照 json 本身规范( http://www.ietf.org/rfc/rfc4627.txt),应该返回 null。同时,大部分互联网公司,比如 google 的规范中( https://google.github.io/styleguide/jsoncstyleguide.xml),对于无意义的 null 值,可以删除 null 值字段。均有道理。但是返回字符串""或者"[]"是不符合规范的。
    zhjits
    zhjits
    Aug 16, 2018❤️1
    244
    防御性编程啊

    try {
    parse_json();
    catch {
    alert("后端错误");
    }
    iamlsd001
    iamlsd001
    Aug 16, 2018
    245
    @fansangg 按照 json 本身规范( http://www.ietf.org/rfc/rfc4627.txt ),应该返回 null。同时,大部分互联网公司,比如 google 的规范中( https://google.github.io/styleguide/jsoncstyleguide.xml ),对于无意义的 null 值,可以删除 null 值字段,即不返回该字段。这两种都是常用处理方式,均有道理。但是返回字符串""或者字符串"[]"是不符合规范的。
    edwardChen
    edwardChen
    Aug 16, 2018
    246
    我已经麻木了,不管怎么样定义的都会做容错
    fansangg
    fansangg
    OP
    Aug 16, 2018
    247
    @iamlsd001 是的,我的主题讲的就是 json 不规范,所以现在的情况是 不懂的人习以为常,还要来讲你自己怎么不作处理,懂的人呢在惊讶为什么社区里居然还有 json 规范都不懂的人在这里大放厥词。
    Eugene1024
    Eugene1024
    Aug 16, 2018
    248
    这么点小事也来吐槽,LZ 看来经历也不多,江湖上什么样的人都有
    Govda
    Govda
    Aug 16, 2018
    249
    @iamlsd001 麻烦告知规范第几节说应该返回 null,我英语不好,比较吃力。
    veelog
    veelog
    Aug 16, 2018 via iPhone
    250
    多一分谅解,人生更加美好
    xcaspar
    xcaspar
    Aug 16, 2018
    251
    “我的天呐,真的是改好了,太优秀了!从业以来遇到过最优秀的同事!”
    ----
    《搞笑一家人》副校长既视感 :-)
    wly19960911
    wly19960911
    Aug 16, 2018❤️1
    252
    这里后端洗地真多,没法沟通,低级错误都能犯。

    这就跟你让他刹车,他踩一脚油门一样,常识错误都能犯。

    我没碰过类型不对,但是我碰过空值给我穿个 [""] 让我前端去校验,累死人
    wly19960911
    wly19960911
    Aug 16, 2018
    253
    @wly19960911 #252 传个 [""], 本身是 List 类型没错就是,问题是字符串解析的数组,自己取数据有问题,数据库就是 "",如果有数据就是 "a,b,c"。
    hoosin
    hoosin
    Aug 16, 2018❤️2
    254
    一口一个 “猪队友” 、“ 8012 年了” 、“ 30 了” 、“那么菜”,有这个时间来 v2 抱怨吐槽,什么问题都解决了,楼主你还是先学会做人吧,还有是 “ JSONArray ” 不是 “ jsonarray ”。
    imdupeng
    imdupeng
    Aug 16, 2018❤️1
    255
    人非圣贤谁能无过?
    楼主逮着 json 这么点儿芝麻小事就爆猪队友,言辞各种恶心,能讲人话不?
    就算他拉的屎不规范,你不想整理直接吃,但你特妈的不能和拉屎的好好沟通么? shit !
    GoodRainChen
    GoodRainChen
    Aug 16, 2018❤️1
    256
    前面返回空了反倒没事儿,大家商量着来
    可是返回个"[]"当空数组也是没谁了,这不是菜是什么?评论里居然还有这么多喷楼主的,是业界水平变低了还是触碰到某些菜鸟的自尊心了。
    自尊不是这么来的啊,低级错误挨打要认
    fansangg
    fansangg
    OP
    Aug 16, 2018❤️1
    257
    @GoodRainChen 瞅瞅你楼上这位,
    「言辞各种恶心,能讲人话不」
    「就算他拉的屎不规范,你不想整理直接吃,但你特妈的不能和拉屎的好好沟通么?」
    脊梁骨是有多痛啊,才能那么激动。
    呵呵
    grewer
    grewer
    Aug 16, 2018❤️1
    258
    "[]" 这不是菜是什么 ??!!!
    错了就要挨打好吧
    alvince
    alvince
    Aug 16, 2018
    259
    这么多洗地的真是看不下去。。。
    楼主明明吐槽的是后端连 JSON 规范格式都没整明白,跟公司业务规范什么的有关系?
    没有看不起 php 的意思,但是洗的大概都是 php 的。。吧,其他语言框架想输出个 "[]" JSON 也不容易 = =
    v2sir
    v2sir
    Aug 16, 2018
    260
    作为一个资浅爬虫工作者, 就想说一句,艾玛, 这算事?现在的前端怎么辣么脆弱?😄
    psychoo
    psychoo
    Aug 16, 2018
    261
    评论真的很奇怪
    stanley0black
    stanley0black
    Aug 16, 2018
    262
    没做前端之前不知道原来做后端真的是轻视前端的,以前自己写接口写页面.现在找后端要个接口,自己给的是对象,硬是要我循环写个列表出来,倒是给个数组啊.错了还不认
    jacksonhr
    jacksonhr
    Aug 16, 2018
    263
    @alvince php 写出这种返回值只能说这货写法有问题,我之前也写过 php,打印的话确实是"[]"这种格式(因为打印 dump 不管之前什么格式全部转换成字符串),但是接口返回都输出之类的都是正常的[]或者 null 的,不会出现应该是[]结果成"[]"情况的
    ramen
    ramen
    Aug 16, 2018❤️1
    264
    以下观点真不是为了杠
    1.看起来 30 岁不一定是 30 岁,也许是个新人,长的老点。我 20 出头的时候,就有人说我 40 多。
    2.有的人不善于沟通,很容易陷入他人思维。可能没理楼主的具体意思,懒得想,还不好意思问。不求甚解+懒+不善沟通,所以楼主说要中括号就加上了。其实这种人比“菜”更可怕。
    3.因为菜就可以指责,是否能容忍他人对你的指责?
    4.我还是没明白,为什么要设计成:address 有值返回字符串,空的话返回数组
    5.两个程序员随便就把接口定了(或者没定),随便就把接口改了。现在都这么随意了么?
    encro
    encro
    Aug 16, 2018
    265
    假设数据库
    $data = $db->select('*')->from('adress');
    本来一行代码:
    return json_encode($data);
    你要求人家写
    $data->address?:[]
    return json_encode($data);
    然后对方写成了
    $data->address?:"[]"
    return json_encode($data);
    LieNoWell
    LieNoWell
    Aug 16, 2018
    266
    可能是历史遗留问题。
    之前有个项目也是 json,空字段返回 null,结果对接的说怎么能是 null 呢,全部改成"",后来才发现公司之前就是这么约定的,你按照规范给他 null,他就报错了 --- 他根本没校验过对吧,为了能然系统跑起来你不得不吧所有的 null 转换为""。
    更常见的是,前端给你的是 json,但是 Content-type 你看看有几个对的?
    azh7138m
    azh7138m
    Aug 16, 2018 via Android
    267
    @Govda 估计这个老哥看错了
    array = begin-array [ value *( value-separator value ) ] end-array

    空数组应该返回 []
    jss
    jss
    Aug 17, 2018 via iPhone
    268
    你可拉到吧,空就是空 为什么要给你 array
    ragnaroks
    ragnaroks
    Aug 17, 2018
    269
    后端肯定不是 php/.net/java,起码自带 json 编码方法出来都是合规的.

    看了上面的回复我觉得没有必要面算法了,直接问他 json 空数组怎么表示
    lengleng
    lengleng
    Aug 17, 2018
    270
    心智不熟啊
    fansangg
    fansangg
    OP
    Aug 17, 2018
    271
    @jss 嗯,你说的都对,好好学习,提升自己,让行业以你为准则,加油
    KuroNekoFan
    KuroNekoFan
    Aug 17, 2018
    272
    在 json 格式的前提下,返回"[]"这种我觉得是怎么都没得洗的吧,只能说这个人是连 json 最基本最基本的规范都不清楚
    hermithacker
    hermithacker
    Aug 17, 2018
    273
    后端,客户端本就互不信任,传递数据两边都得做好数据校验和异常处理。说猪队友就过了,人有所长,只盯着人短处没意思了
    NicholasYX
    NicholasYX
    Aug 17, 2018
    274
    我觉着你们可能没有看清楼主说的是 空数组返回的是 “” 而不是[] address 本来就是数组为什么要返回“” 你们还在这杠
    fansangg
    fansangg
    OP
    Aug 17, 2018
    275
    @NicholasYX 我也觉得你可能没理解那些杠的人,可能在他们的认知里,空我就给你返回"",我管你什么类型。
    NicholasYX
    NicholasYX
    Aug 17, 2018
    276
    @fansangg 哈哈哈哈哈,数组能传出来个“”也挺牛逼的 手动滑稽
    royzxq
    royzxq
    Aug 17, 2018
    277
    弱弱的问下哪个语言 /框架空数组能返回 "[]" 的, 我想见识见识。
    mingzepeng
    mingzepeng
    Aug 17, 2018
    278
    虽然这个问题在于后端,不过看到楼主这种态度,我是不敢招的。这种小问题都能发个帖来上纲上线,真是幼稚
    KasonPasser
    KasonPasser
    Aug 17, 2018
    279
    有一句后端的名言是:不要相信前端传过来的所有数据。
    同样,也可以反过来:前端你不要相信后端能给到你所想要的数据格式。
    fansangg
    fansangg
    OP
    Aug 17, 2018
    280
    @mingzepeng 彼此彼此
    derrickT
    derrickT
    Aug 17, 2018
    281
    1. 这是明显的错误,喷楼主的什么心态
    2. 接口规范应该定义好
    3. 沟通很重要
    mingl0280
    mingl0280
    Aug 17, 2018
    282
    如果 address 应该是个数组,那么确实应该返回空数组,返回其它的都是不专业的表现。
    如果 address 是个字符串,那么就应该返回空字符串……
    bzw875
    bzw875
    Aug 17, 2018
    283
    习以为常了
    googoehl
    googoehl
    Aug 17, 2018
    284
    @mingl0280 我也是怎么理解的 !
    JaxXu
    JaxXu
    Aug 17, 2018
    285
    @KasonPasser 偷换概念,不要相信前端传过来的数据只是要做数据校验,但是格式总是定好的吧,后端不给定好的格式返回,没得洗的
    v2chou
    v2chou
    Aug 17, 2018
    286
    @KasonPasser 还能这样理解? 社会
    aaronysj
    aaronysj
    Aug 17, 2018
    287
    咋还这么多人
    dryyun
    dryyun
    Aug 17, 2018
    288
    这后端可能不咋地,但是你这前端就不能容错一下?
    规范是要定规范的,但是架不住有意外情况发生呀。
    调个接口,502,前端又来说了,后端 xxx,害我前端报错了。后端也无奈。

    所以我说做好自己的事情。
    JaxXu
    JaxXu
    Aug 17, 2018
    289
    @dryyun 我看楼主的意思是 本来是定义好的数组类型,空就应该返回空数组
    dryyun
    dryyun
    Aug 17, 2018
    290
    @JaxXu 恩,我也没为这后端说什么,也确实觉得这后端在接口返回这块确实做的不好。
    只不过楼主这态度,有点无语。
    一来就是 [猪队友] [混日子] ,一副自己很厉害的样子,好好讨论事情,好好的描述这事不行嘛。
    way2create
    way2create
    Aug 17, 2018
    291
    见过集成环境+个扩展折腾好几天,跟 mod_rewrite 都不知道的多年开发经验组长吗
    way2create
    way2create
    Aug 17, 2018
    292
    相对技术,我更反感技术差的同时又爱装腔作势,然后为人跟态度很差的同事
    fansangg
    fansangg
    OP
    Aug 17, 2018
    293
    @dryyun 既然你说我不够包容,那我就把这件事敞开来说一说,我工作效率比较高,这是同事们都认可的,正常情况下我是准时下班的,这么多年来都是这样。上次是因为数组返回字符串这样的小事情耽误了我的时间,这是一个很低级的错误没错,而且我说明之后还把"[]" 当数组返回给我,你要说他是刚毕业的我倒不觉得怎么样,还会耐心的和他讲解一下,但这位和我对接的同事是 89 年的 29 岁,比我大两岁,履历经验应该都是比我丰富的才对,但是他犯了这样一个错误,而且应该还不是粗心大意所犯的,最重要的是耽误了我这边的时间,我骂他「傻逼」其实都不为过;你要是出了什么比较难解决的 bug,我还会和你一起 debug,一起想解决方案,可偏偏是这样无知低能的错误,我相信放在任何一个人身上都会不舒服。
    nothingtodo
    nothingtodo
    Aug 17, 2018
    294
    张口就骂人,配合你才怪
    nothingtodo
    nothingtodo
    Aug 17, 2018
    295
    尖酸刻薄,人品差
    YvesX
    YvesX
    Aug 17, 2018
    296
    也不是什么大事,对方理解有误或者没注意到哪个地方发生了转换而已,至于挂城墙吗?

    以前我给人说,遇到某一类错误,不用管那么多细节,一直返回 500 就好。
    回头发现对方开了个永真 for 循环不停返回 500 ……
    phpcxy
    phpcxy
    Aug 17, 2018
    297
    这个后端绝对是没法洗的。应该是赋值时候手抖打多了引号导致的问题,我猜他改完后也没跑一下很自信地就提交了。
    yy1984
    yy1984
    Aug 17, 2018 via Android
    298
    这帖子丰富了我的 block 名单,错就是错,做错就要认,挨打要立正。一堆无脑后端在抨击楼主的态度
    bajie
    bajie
    Aug 17, 2018
    299
    前端不如狗,diss 前端的月经贴怎么不见这么多理智人士,楼主作为一个前端出来 diss 后台马上被喷出翔
    hiddendeerer
    hiddendeerer
    Aug 17, 2018
    300
    满满负能量的抱怨贴
    1  2  3  4  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5230 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 131ms · UTC 07:07 · PVG 15:07 · LAX 23:07 · JFK 02:07
    ♥ Do have faith in what you're doing.