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

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

  •  
  •   fansangg · Aug 15, 2018 via iPhone · 36295 views
    This topic created in 3005 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  
    ❮ ❯
    codermagefox
    codermagefox
    Aug 15, 2018 via iPhone
    1
    你确定他不是故意这么返回给你的?
    meloner
    meloner
    Aug 15, 2018 via Android❤️4
    2
    幼稚, 本质上是个沟通问题, 你需要一些防御性编程的意识, 我也是前端
    ryd994
    ryd994
    Aug 15, 2018 via Android❤️1
    3
    你们接口文档不先商量一下吗?
    fansangg
    fansangg
    OP
    Aug 15, 2018 via iPhone❤️9
    4
    @ryd994 这还需要商量,空数组返回 string 有人能这样干吗?
    fansangg
    fansangg
    OP
    Aug 15, 2018 via iPhone
    5
    @codermagefox 应该不是,我看着他写的返回了一个空的 array,然后转 json 到我这就是“[]”带引号的 string,他那边是 php 写的,我对 php 不太熟,但是我觉得肯定是要转成 jsonarray 这样
    fansangg
    fansangg
    OP
    Aug 15, 2018 via iPhone❤️1
    6
    @meloner 这你也要来杠一下,行行行,您老写代码谨慎,我甘拜下风。
    matsuz
    matsuz
    Aug 15, 2018 via iPhone
    7
    有可能是在某一步被自动转换成了 string,而他没有注意到这个问题
    fanqianger
    fanqianger
    Aug 15, 2018❤️6
    8
    看不出来这有啥好黑的。你和他沟通一下就好了,在网上发帖起不到任何实质性的作用。
    fansangg
    fansangg
    OP
    Aug 15, 2018 via iPhone❤️1
    9
    @fanqianger 我没有在黑什么,我只是在吐槽,因为猪队友的低端错误延误了我的工作进度,沟通什么的发现问题就马上沟通了,但是在我的认知里,这种错误是不应该发生的
    hanxiV2EX
    hanxiV2EX
    Aug 15, 2018 via Android
    10
    自己做后端
    hrong
    hrong
    Aug 15, 2018 via Android❤️75
    11
    一点小事就生气, 你也干不了什么大事。
    Quarter
    Quarter
    Aug 15, 2018 via iPhone❤️1
    12
    额,我觉得可能只是失误,有的时候很就没有改这部分代码,然后改的时候就忘记代码逻辑,以为是这么改的,没想到改的还不是最终结果,你跟他说写完了先 postman 测试一下对不对,应该也算不上猪队友吧,楼主也别生气了,如果他告诉你只能返回字符串,是改不了数组的,那就比较猪队友了,其实这种错误还是挺常见的,莫生气
    JinShu
    JinShu
    Aug 15, 2018 via Android❤️11
    13
    在别人身上看到的缺点,都是自己的映射。
    IssacTomatoTan
    IssacTomatoTan
    Aug 15, 2018 via Android
    14
    后台 MVC 说没有值系统就会返空 不会给你空数组。 各种只会数据库取状态返回参数让前台判断只为了展示给用户 完成 / 未完成
    waruqi
    waruqi
    Aug 15, 2018 via Android
    15
    这种事情多了去了 没必要特地拎出来说。习惯就好。
    meteor957
    meteor957
    Aug 15, 2018 via Android❤️2
    16
    大惊小怪
    jiangjz
    jiangjz
    Aug 15, 2018 via Android
    17
    我们前端都是自己解决这些问题的
    nosay
    nosay
    Aug 15, 2018 via iPhone❤️1
    18
    身为后端,每次都会在 postman 里测试好,然后发接口文档给相关同事。但还是依然避免不了 ios 那大兄弟 app 因类型问题闪退的情况,互相鄙视已属常态,淡定就好
    jorneyr
    jorneyr
    Aug 15, 2018
    19
    可能是你们的规范没有规定好什么情况返回什么数据,我们有强制规定。
    lyklykkkkkkk
    lyklykkkkkkk
    Aug 15, 2018❤️8
    20
    另一个思路是

    反思自己如何沦落到与之为伍
    natscat
    natscat
    Aug 15, 2018
    21
    不说前面的谁对谁错 改了之后居然返回"[]" 这样写的我是没见过的
    duoglas
    duoglas
    Aug 15, 2018❤️1
    22
    遇到这类问题不去推进整体流程规范改进避免后续发生,来这里发个吐槽抖机灵,不怕以后的面试官在这里看到黑历史么?
    qilishasha
    qilishasha
    Aug 15, 2018
    23
    不是应该返回 null 吗?
    hrong
    hrong
    Aug 15, 2018 via Android
    24
    空数组(数组无元素的特殊情况)
    空字符串(字符串无元素的特殊情况)
    null

    上面这些概念要先在项目组里面整明白了,大家也就不会推脱责任骂对方猪队友了吧。。。
    Braid
    Braid
    Aug 15, 2018❤️3
    25
    楼主在这里抛了个很水的一个问题,感觉人就是水的,哈哈哈哈
    tnt666666
    tnt666666
    Aug 15, 2018❤️6
    26
    天天写前端不烦吗,还 bb 啥,自己技术 low 怪谁
    beastk
    beastk
    Aug 15, 2018 via iPhone
    27
    你们没有统一的规范,就是 50 步笑一百步,谁也别笑话谁。
    Sharuru
    Sharuru
    Aug 15, 2018 via Android❤️3
    28
    有些开发在接口返回的时候,图省事都是返回 String 型的。
    比如 "id": "10",这种情况下,数组为空返回了 "" 也是常见的情况。(可能后端还纳闷为什么还要特地给你加两个括号呢)

    归根结底,还是对于数据的处理没有事先的定义。
    swcat
    swcat
    Aug 15, 2018 via Android
    29
    这种东西定义该有提前约定的,没有按照约定来,怼回去就可以了
    v3exhost
    v3exhost
    Aug 15, 2018
    30
    你们自己不解析空字符串的?
    前端这么好干,什么都不用做?
    phpcxy
    phpcxy
    Aug 15, 2018
    31
    "[]" 是有点好笑,到底是怎么做到的呢?我掐指一算他应该是本想在 PHP 里面定义数组,但写错了$address = "[]" 手抖打多了引号而已,改过来就好啦。
    suikator
    suikator
    Aug 15, 2018 via Android
    32
    原来后端这么好干 什么都不用做
    asadegg
    asadegg
    Aug 15, 2018
    33
    接口文档了解一下
    sonyxperia
    sonyxperia
    Aug 15, 2018
    34
    可能他确实不知道传给你的格式不对了
    zjsxwc
    zjsxwc
    Aug 15, 2018❤️3
    35
    address 是个单数啊,命名成 addresses 更合理
    wjpdev
    wjpdev
    Aug 15, 2018
    36
    先两边约定好接口, 否则接口放到最后改来改去,自找麻烦。
    947211232
    947211232
    Aug 15, 2018
    37
    不要过分苛刻要求,多沟通就好。
    niaobulashi
    niaobulashi
    Aug 15, 2018
    38
    我猜楼主刚毕业
    maninfog
    maninfog
    Aug 15, 2018 via Android❤️2
    39
    技术上的事情拿来吐槽,稍显幼稚了,沟通一下秒秒钟解决的事情,说不定别人只是手抖了呢
    keepeye
    keepeye
    Aug 15, 2018
    40
    碰过一个第三方平台的接口,返回的 json: "{\"result\":\"0\",\"err_msg\":\"设备编号错误\"}" 两头有双引号
    ren2881971
    ren2881971
    Aug 15, 2018❤️2
    41
    都是混口饭吃嘛。。 也不是啥高精尖的技术行业。
    LZ 想想你也会有到 30 岁的时候。。。 包容一下,你敢保证你从来没给别人挖过坑么?
    lzs5240
    lzs5240
    Aug 15, 2018
    42
    目测是个新人
    hasbug
    hasbug
    Aug 15, 2018
    43
    粗心或者没理解是数组还是字符串。
    属于沟通不到位,说实话,我经常这样,我前端,然后我现在总怀疑自己理解错误,总会跟后端再次确认,但是呢,人家就不耐烦,呵呵。
    killerv
    killerv
    Aug 15, 2018
    44
    我在想为什么它能生成这样的 json,难道是自己手动拼的?
    jimplanck
    jimplanck
    Aug 15, 2018
    45
    作为一个程序员不懂得沟通是很吃亏的
    koalli
    koalli
    Aug 15, 2018
    46
    后端 php 的吧?我们后端也是 php 的,空数组返回 false 你敢信?实际上这是工作流程和规范的问题。
    服务端作为一个黑盒系统,不能给出稳定的类型和结果,对接的时候就是各种坑,到哪里都是坑。
    后端不跑测试用例的,对接的时候不是给 api 而是口头说的(很多),这种公司迟早会凉凉的。
    huabinglan
    huabinglan
    Aug 15, 2018
    47
    JSON 也是有数据类型的,现在前端规范也是要求强类型相等(===),现在后端返回这种东西,面上来看后端本身就不严谨,这也不是约定的问题,而是 JSON 本身就有数据类型,按照正确数据类型返回是自然而然的事。同理存在多个 address,如果数据库没记录本身就应该返回空数组,没的说
    a191243108
    a191243108
    Aug 15, 2018
    48
    @keepeye 没问题呀这种,你 JSON.parse()就可以了,格式换一下就好了
    u14e
    u14e
    Aug 15, 2018
    49
    所以我去做后端了
    7654
    7654
    Aug 15, 2018
    50
    前后端分离的一个好处就是可以互相甩锅吧
    a191243108
    a191243108
    Aug 15, 2018
    51
    这些都是小问题,没什么好烦恼的,你说一句话,不用几秒就搞定的事情,跟他沟通好,按照文档格式来,你就说这样防止出错,我估计别人手抖了一下,哈哈哈
    shily
    shily
    Aug 15, 2018 via Android
    52
    @ren2881971 #41 我敢保证不挖这么 low 的坑。
    enenaaa
    enenaaa
    Aug 15, 2018
    53
    应该是一个知识盲点而已。 反倒楼主, 动不动就猪队友叫唤,你就没出错的时候?就没懵逼的时候?

    设身处地地想想,其他同事也这么怼你,会有何感想。
    darktutu
    darktutu
    Aug 15, 2018
    54
    不懂 php,但是这个变量的命名不就应该是返回一个 string 吗?也不是复数的为啥是个数组
    geying
    geying
    Aug 15, 2018
    55
    有发帖的功夫不如两个人对下文档和数据,解决一次大家都知道怎么回事

    前端呀~
    Tink
    Tink
    Aug 15, 2018
    56
    这个后端是个新人
    ala2008
    ala2008
    Aug 15, 2018
    57
    返回[]是合理的,某种情况下,返回''''也是合理的。看数据格式约定
    jdgui
    jdgui
    Aug 15, 2018❤️1
    58
    楼上喷楼主的大概都是后端的。。
    USNaWen
    USNaWen
    Aug 15, 2018
    59
    文档啊文档。。。。一开始就该订好存档下来啊
    UIXX
    UIXX
    Aug 15, 2018
    60
    接口文档+分离测试 谁的锅谁背
    wanglilong
    wanglilong
    Aug 15, 2018
    61
    公司没有统一开发规范,50 步笑百步。
    keepeye
    keepeye
    Aug 15, 2018
    62
    @a191243108

    JSON.parse('"{\"result\":\"0\",\"err_msg\":\"设备编号错误\"}"')
    overflowHidden
    overflowHidden
    Aug 15, 2018
    63
    哈哈哈哈哈哈。。其实我也遇到过,我说返回一个数组,然后就变成了'[22,22]'。。。差点被气哭
    ioth
    ioth
    Aug 15, 2018
    64
    别把别人想得太好,或者说别人为什么要对你太好?
    vipppppp
    vipppppp
    Aug 15, 2018
    65
    小公司的前后端分离。。一言难尽。。
    前端传来的值,不传 /None/"",都可能。。
    后端传回去的值,{"data" : {"data": []} / {"data": []}
    watzds
    watzds
    Aug 15, 2018 via Android❤️3
    66
    这种低级错误,竟然这么多人辩解,可见这土壤多么肥沃,工作写代码不讲究
    v2chou
    v2chou
    Aug 15, 2018
    67
    @nosay 捉到一个好后端 我们后台估计就是脑袋里过了一遍然后说成功了 然后要我调 然后调的时候各种报错 美名其曰 前后端联调
    leejoye
    leejoye
    Aug 15, 2018
    68
    已 block
    wpby
    wpby
    Aug 15, 2018
    69
    你这么吊,咋不去做后端?咋不去做 cto
    amon
    amon
    Aug 15, 2018
    70
    我猜楼主用的是 php
    kera0a
    kera0a
    Aug 15, 2018 via iPhone
    71
    这种情况后端的锅没得说吧,类型都给错误了还防御性编程个啥,弹出 json 解析失败就是最好的防御了,强行解析你保不住下次他给你个整型呢
    watzds
    watzds
    Aug 15, 2018 via Android
    72
    我还见过那种徒手字符串拼接 json 的人
    overflowHidden
    overflowHidden
    Aug 15, 2018
    73
    不过经过楼主这么一发帖和楼上一些人的言论让我明白了这种‘失误’可能在后端很正常,放宽心咯
    kera0a
    kera0a
    Aug 15, 2018 via iPhone
    74
    @overflowHidden 我觉得这些人连这些严谨都没自觉挺可怕的
    jinsongzhao
    jinsongzhao
    Aug 15, 2018
    75
    这体现不了后端不懂[],干嘛不做个懂后端的前端呢。只要不是手工打造的 json,如果返回的属性类型是 string,编码器会自动加上引号。如果是 object,通常也会变成字符串。最好是明确属性类型是个数组。
    rockyou12
    rockyou12
    Aug 15, 2018❤️1
    76
    @ala2008 敢把数组返回“”,做安卓和 ios 的会半夜把你闷棍敲死好不。好多前端 js 写多了不重视数据类型,在这里开脱真的搞笑。前后分离很重要一点不就是可以做多种客户端,java 和 object-c 可是静态类型的,真把这些数据类型乱传,跑的时候各种闪退还要自己抓包去找锅,真的杀人的心都有了……
    a191243108
    a191243108
    Aug 15, 2018
    77
    @keepeye 牛皮,原来你指加多了,一对分号''。我以前也碰到过
    hotdogwc
    hotdogwc
    Aug 15, 2018
    78
    这算啥,某微软亚洲研究院前员工(不知道真假,整天穿个微软的 T 恤在公司晃,LinkedIn 也显示他在那干了两年),收不到 iOS 推送,跟他联调,怎么都收不到,我这边自己接了个极光可以收到,从早晨调到下午,原来是他那边推送第三方库报错了请求根本没发出去。。。。。还有,有一次我发请求 404,我跟他说路由没找到,你帮我看看呗,结果他一直在让我换不同的 header 发,我跟他说没有可能你先不匹配路由就检查 header 吧,他跟没听见一样还让我换 header,最后还是路由的问题。。。
    suikator
    suikator
    Aug 15, 2018 via Android
    79
    @watzds 正好可以把一堆后端水货 block 了
    jzds001
    jzds001
    Aug 15, 2018❤️2
    80
    无语了,这算什么问题?你就拿来黑了?
    weizhen199
    weizhen199
    Aug 15, 2018
    81
    "[]"确实很 low
    tinycold
    tinycold
    Aug 15, 2018❤️10
    82
    我跟你说,你们这个算好的,我以前遇到一个,没有东西,就不给我返回,Request 就这么挂着。

    我问他,你这个怎么次次都超时,我把超时限制关闭了都还一直不返回,怎么回事儿,

    那哥们儿说: 没有东西,我怎么返回嘛!! 。

    dei, 理直气壮的,我还觉得他说得多有道理的
    Hardrain
    Hardrain
    Aug 15, 2018
    83
    @meloner 不按规范成了沟通问题?

    鲁棒性那是考虑用户 /合作方错误操作 /输入错误数据。
    不是考虑自己一方违反规范
    julio867
    julio867
    Aug 15, 2018❤️1
    84
    嗯,这样的人应该挺多的吧~这两年遇到不少后台开发做接口的,有的人很规范,而有的人直接把整个数据库都暴露给你,然后跟你说“字段都给了,用什么自己挑”,当然密码字段也会出来····
    cncqw
    cncqw
    Aug 15, 2018
    85
    @keepeye 这个是返回类型写 string 结果接口的 json 数据被转成字符串了
    easylee
    easylee
    Aug 15, 2018 via Android
    86
    @hrong #11 你这条回复 26 赞,哈哈哈。用个知乎都生气,你能干啥大事?
    c0878
    c0878
    Aug 15, 2018
    87
    @meloner 防御性编程技术笑哭
    Sparetire
    Sparetire
    Aug 15, 2018 via Android❤️7
    88
    整个帖子的回复简直不忍直视。。低级错误也能有这么多人洗
    鲁迅: 我觉得防御性编程防不了 sb
    Kizishao
    Kizishao
    Aug 15, 2018
    89
    @tinycold 这个我真的笑了。
    Raymon111111
    Raymon111111
    Aug 15, 2018
    90
    有接口文档吗?
    huoluobo
    huoluobo
    Aug 15, 2018
    91
    我也遇到过不少次,给后端说了他也好像理解了,然后改半天说改好了,拿回来一看还是错的,根本没变化不知道改的啥。。。
    SirLostWhite
    SirLostWhite
    Aug 15, 2018
    92
    有接口文档和数据字典就好了
    easylee
    easylee
    Aug 15, 2018 via Android❤️6
    93
    这种低级问题都能洗地,还说楼主的锅,我也是服了楼上洗地的各位,告辞,惹不起你们,今天你们可以喷楼主,说不定明天我发帖就来喷我了,惹不起惹不起。
    suikator
    suikator
    Aug 15, 2018 via Android
    94
    @tinycold 都是腰间盘 为什么他那么突出 报下公司名 大家一起入职 😂
    duan602728596
    duan602728596
    Aug 15, 2018 via iPhone
    95
    真的,幸好 js 数据类型没多少,要不然真防御不过来 sb
    skSK09
    skSK09
    Aug 15, 2018
    96
    hh
    NullException
    NullException
    Aug 15, 2018❤️1
    97
    前端不会 ajax 交互的一抓一大把。
    rb6221
    rb6221
    Aug 15, 2018
    98
    这还用规范?在我看来,如果明白确定是「 json 」格式,那所有不标准的 json 就统统是错误的,包括 PHP 的动态 key 数字 key 这种,都不算是标准的 json。
    如果你要问我要规范,那行,json 规范自己看下,严格遵守就 OK
    huoru
    huoru
    Aug 15, 2018
    99
    我艹,评论的都是当真?
    66beta
    66beta
    Aug 15, 2018 via Android
    100
    还是自己校验下吧,真的,心累
    1  2  3  4  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1654 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 254ms · UTC 23:56 · PVG 07:56 · LAX 15:56 · JFK 18:56
    ♥ Do have faith in what you're doing.