V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
fansangg
V2EX  ›  程序员

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

  •  
  •   fansangg · Aug 15, 2018 via iPhone · 34418 views
    This topic created in 2819 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
        201
    aaronysj  
       Aug 15, 2018
    PHP 肿么了,别没事就黑啊
    hoosin
        202
    hoosin  
       Aug 15, 2018
    @fansangg 写 "hello world" 也算写过吗?
    CasualYours
        203
    CasualYours  
       Aug 15, 2018 via Android
    老哥,你这是引战贴啊。
    Viztor
        204
    Viztor  
       Aug 15, 2018
    楼主说的没错啊。
    只是好好沟通不行吗,又不难改。没必要开嘲讽。

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

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

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

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

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

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

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

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

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