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

和主管为一个接口输出真吵了一天,搞得都想离职,求怎么破

  •  
  •   HackerPainter · Mar 19, 2019 · 43668 views
    This topic created in 2794 days ago, the information mentioned may be changed or developed.

    主管想用的接口输出

    {
      "status" : "错误码",
      "error" : "错误消息",
      ......
    }
    

    楼主想用的接口输出

    {
      "errorCode": "错误码",
      "errorMsg" : "错误消息",
      ......
    }
    

    我在想一个接口至于争吵一天吗?最后我妥协了,现在感觉好想离职,请问怎么破

    Supplement 1  ·  Mar 20, 2019

    首先非常感谢各位社友的回复和讨论,在看各位社友的评论中学到了很多东西,果然三人行必有我师焉!

    • 社区有些社友可能认为这种接口争吵没啥意义,随便定义一个就行,但如果这个接口被几千人使用甚至被几万人使用,那就得对这个接口好好设计了。如果连自己都对自己提供的接口不保持敬畏,那就别指望用户对你提供的接口保持敬畏,对于用户的抱怨牢骚那只能全部接下。过去几年里很多用户对我们提供的接口出现过各种各样的抱怨(每个用户都有一套自己心目中的接口,就像社区内留言出现很多接口定义),如果接口提供方的接口与接口使用方心目中的接口不一样就会出现或多或少有抱怨和吐槽。为了尽量让用户用的爽,减少用户的抱怨,所以就和主管对接口进行了争吵(善意的争吵),至于想离职是其它方面的原因;

    • 有些社友可能认为和主管争吵不太好,主管想做成什么样自己就做成什么样。但你真认为这种状态好吗?即使你照做了,你觉得主管认可你吗?在互联网环境下,得多与主管、同事讨论讨论问题,有些难解的问题就是在讨论中产出解决方案的。过去几年和主管同事争吵过无数次甚至拍桌子,差点打起来,但这种都是idea的碰撞,只有碰撞中才能产出好的idea,其实碰撞完后同事主管都会私下交流这个都是各自想法,不代表其他含义,不要往心里去。对于主管要你做啥你就做啥,那主管招你有何用,主管可以招任何一个人来替换你,这样你的自身竞争力在哪里。一个程序员要往高处发展,要学会自己去发现问题去解决问题,而不是等待主管安排问题,比如主管交给你一个手工线上部署任务(需要经常部署),结果你每次都可以手工无故障的部署完成,但这种结果是主管希望的吗,主管再找一个人也可以无故障的手工部署,但如果你把手工线上部署做成自动化工具一键部署,可以节约时间且无风险,这样在主管看来你就是不可替代,能自己对问题提出解决方案;

    • 程序之美应该包含编程之美、接口之美和测试之美。如果有一段程序编程无规范、接口随便定义,无单测和功能测试,让你去接手这段代码,你会怎么想?所以还是对接口保持敬畏之心,多花点时间定义接口,少花点时间答疑和听用户的抱怨;

    下面各出了很多社友的接口定义,可以供借鉴,排名不分先后,可以投票😄

    {
        "code": "错误码",
        "message": "错误消息"
    }
    
    {
        "errno" : "错误码",
        "message" : "错误消息"
    }
    
    {
        "status": "错误码",
        "error": "错误消息"
    }
    
    {
        "status": "错误码",
        "msg": "错误消息"
    }
    
    {
        "errKey": "错误码",
        "errMsg": "错误消息"
    }
    
    {
        "status": "错误码",
        "error": "错误消息",
        "errorCode": "错误码",
        "errorMsg": "错误消息"
    }
    
    {
        "statusCode": "错误码",
        "statusMsg": "错误消息"
    }
    
    {
        "error_code": "错误码",
        "error_msg": "错误消息"
    }
    
    436 replies  •  2020-12-01 11:05:06 +08:00
    1  2  3  4  5  
    ❮ ❯
    XuanYuan
    XuanYuan
    Mar 19, 2019
    301
    @yiyi11 #107 你这个不全,完整版应该是这样:

    喜欢就买,不行就分,多喝开水,重启试试。
    lincanbin
    lincanbin
    Mar 19, 2019
    302
    还是工作不饱和
    jxgccaaron
    jxgccaaron
    Mar 19, 2019 via iPhone
    303
    { "errors":"错误消息";}
    就这样,完了
    code 按 restful 来
    mostkia
    mostkia
    Mar 19, 2019
    304
    {"code":"200","msg":"........",......}这样可能比较好
    一般没必要强调错误参数,返回的什么可能性都有,唯独错误率应该是低的,这是上线的接口的基本功。
    所以在很少有错误发生的情况下,为其专门准备一个返回值位置,可能就有些多余,而且也不能从中反推出其他的可能状态,因为总会有其它的状态出现。
    还有啊,每个人的想法都是不同的,在公司里面的话,就不能意气用事了,主管怎么说你就怎么做呗。做出来的东西又不是你自己的。不必纠结那么多,大家都是混口饭吃,都留一些情面嘛,好说话一些。
    srx1982
    srx1982
    Mar 19, 2019
    305
    code, msg 就完了,越少越好
    这个真的不值得吵
    srx1982
    srx1982
    Mar 19, 2019
    306
    @fox0001 通用的 404 之类的还好说,有的时候根本不够用或者找不到合适的,还是要加个 status 之类的字段来判断到底什么错
    zhuchaowe
    zhuchaowe
    Mar 19, 2019 via iPhone
    307
    @keepeye 看了一圈 这个方案我最喜欢 其他方案 看着脑阔疼
    fngtz
    fngtz
    Mar 19, 2019 via iPhone
    308
    @reid2017 一毛一样+1,
    psj1105
    psj1105
    Mar 19, 2019
    309
    这个话题唯一有点价值的就是 V 友们互(各)相(自)学(站)习(队)了
    liubaicai
    liubaicai
    Mar 19, 2019 via Android
    310
    吵架算什么,有本事去尬舞啊
    oxygenliu
    oxygenliu
    Mar 19, 2019 via iPhone
    311
    这也能吵?
    om6r5sqSGG9Magr0
    om6r5sqSGG9Magr0
    Mar 19, 2019
    312
    为这点事情离职 不值得
    simonv3ex
    simonv3ex
    Mar 19, 2019
    313
    我听说过有公司吵架的罚 2 个人牵手一下午的,好像在 b 站上看到的来着[滑稽]
    zhuzhibin
    zhuzhibin
    Mar 19, 2019 via iPhone
    314
    我更想听听楼主以及主管这样设计的各自的理由是什么???
    ZehaiZhang
    ZehaiZhang
    Mar 19, 2019
    315
    ??? 315 楼了,所以为啥吵架?
    pinews
    pinews
    Mar 19, 2019
    316
    在执行成功的时候,楼主的方式缺陷很大,具体事情具体分析,如果不去分析的话,主管的方案更具有普遍性
    pinews
    pinews
    Mar 19, 2019
    317
    @HackerPainter
    主管的方案里 status 只有两种状态,成功和失败,失败了就提示 errmsg 的内容,并不区分具体错误码。
    错误码要来干什么,第一要准确定义错误,防止 msg 歧义,第二归类,错误码很多,第三,程序自动识别。
    你都没说问题的背景是什么,不知道怎么评价。
    exip
    exip
    Mar 19, 2019 via Android
    318
    这个帖子囊括了一天的笑点.哈哈哈
    Gota
    Gota
    Mar 19, 2019
    319
    比较喜欢 GraphQL 的返回格式:

    ``` json
    {
    "data": { ... },
    "errors": [ ... ],
    "extensions": { ... }
    }
    ```
    billlee
    billlee
    Mar 19, 2019
    320
    tourist2018
    tourist2018
    Mar 19, 2019
    321
    看不出这俩有啥区别,命名而已,要是我和别人对接接口,只要数据格式规定好,别的怎样我都没问题

    这也能炒一天 感情公司找你上班这么浪费时间的?
    luckyswag
    luckyswag
    Mar 19, 2019
    322
    同情主管
    sorshion
    sorshion
    Mar 19, 2019
    323
    你们就没考虑到正常业务也需要 message 的嘛
    {
    status:true/false, // true 为正确业务,false 为错误业务
    code: 1000,// 编码
    msg: '' , // 正确时或错误时用户提示信息,与 code 对应,方便做文案映射
    data:{} // 一定要为对象,不能为'',0,null 之类
    }

    -----------------------------
    突然感觉如下的也合适
    {
    code: 200,// 编码(假设 200~299 的为正常)
    msg: '' , // 正确时或错误时用户提示信息,与 code 对应,方便做文案映射
    data:{} // 一定要为对象,不能为'',0,null 之类
    }
    -----------------------------

    上面的感觉又变成了 http_code 了,直接 restful 得了,用 http_code 表示不同状态,code 表示业务状态
    sorshion
    sorshion
    Mar 19, 2019
    324
    @ryanking8215 你的方案比较赞同
    feikeq
    feikeq
    Mar 19, 2019 via iPhone
    325
    @AngryMagikarp 一样可以配置做国际化语言,我现在就是中英双语,枚举想要的本地化语言文件即可
    hanxiV2EX
    hanxiV2EX
    Mar 19, 2019 via Android
    326
    只要有规范文档,用哪种都行!别改来改去就行。这事没必要吵,浪费时间。只要给够钱,用拼音,用中文都行。

    坐等主管来说:我就是那个主管。
    OnionJuice
    OnionJuice
    Mar 19, 2019
    327
    @luckyswag
    +1,主管管不住人,还叫什么主管,变成前后端的传话小弟。

    回楼主
    这种返回格式不是一般都由主管定的吗?恕我直言,如果主管规定
    {
    "1" : "错误码",
    "2" : "错误消息",
    ......
    }
    都可以。
    说实话码农就是写代码的,标准是按照 leader 定的,各自一套这样的代码也是屎。
    tt0411
    tt0411
    Mar 19, 2019
    328
    现在的主管管理要这么精细了? 我们接口都是自己说了算
    16t
    16t
    Mar 19, 2019
    329
    LZ 怕不是直译强迫症吧。。。。。。
    shakaraka
    shakaraka
    Mar 19, 2019
    330
    早上才几个人回复。。。。现在居然能吵 300 多楼?。。也是厉害
    feelinglucky
    feelinglucky
    Mar 19, 2019
    331
    @keepeye 一般我也这样子,不接受任何规劝
    xiaoqi
    xiaoqi
    Mar 19, 2019
    332
    难道不就是定个规范的事情吗?
    iceking
    iceking
    Mar 19, 2019
    333
    "ret", "msg", "data"
    jzmws
    jzmws
    Mar 19, 2019
    334
    这个要看之前是这么定义的 ,要兼容旧的接口
    tiaod
    tiaod
    Mar 19, 2019
    335
    这都能翻 4 页,v2 的程序员也是够闲的
    nodwang
    nodwang
    Mar 19, 2019 via Android
    336
    @tiaod 不瞒您说,我大半夜的翻了 4 页看
    techme
    techme
    Mar 19, 2019
    337
    主管和新来的总监都不会用 git
    代码在一个分支上盖来盖去,心累不想管(=。=)
    qianbiTH
    qianbiTH
    Mar 19, 2019 via Android
    338
    闲的蛋疼,我就要连按 4 下空格,咬我啊
    huangdayu
    huangdayu
    Mar 20, 2019 via Android
    339
    {
    "code":200,
    "msg":"success",
    "decs":"成功",
    "data":"List<Obj>"
    }

    不接受反驳
    crazyjin
    crazyjin
    Mar 20, 2019
    340
    @lincanbin 工作虽然不饱和,但起码人是吃饱了的。。
    ksharp8
    ksharp8
    Mar 20, 2019
    341
    一般用主管那种
    SNOOPY963
    SNOOPY963
    Mar 20, 2019
    342
    让开让开!

    别问!问就是离职!
    xderam
    xderam
    Mar 20, 2019
    343
    感觉看大家讨论也能各种涨知识,如果不讨论楼主和其主管的纷争的话,其实挺好的。
    个人感觉 这玩意应该没有四海统一的标准,楼主尝试下把大家的讨论结果整理下,然后给主管一个建议,他选择哪个就是哪个。然后在论坛里和大家讨论下到底哪个方案更好,单纯和主管讨论多没意思~~~
    cyssxt
    cyssxt
    Mar 20, 2019 via iPhone
    344
    这个怎么吵一天 求教
    BlBana
    BlBana
    Mar 20, 2019 via Android
    345
    有点浪费时间啊 ... 没必要啊
    congeec
    congeec
    Mar 20, 2019
    346
    @gtanyin 哈哈哈哈,dmesg 还是挺好用的
    6260628
    6260628
    Mar 20, 2019
    347
    听主管的,你有本事就坐他的位置,但感觉一两年内不可能
    conge
    conge
    Mar 20, 2019❤️1
    348
    能为这点儿小事儿吵架
    说明你俩积怨已深。
    Trumeet
    Trumeet
    Mar 20, 2019
    349
    都怪袁隆平?
    Trumeet
    Trumeet
    Mar 20, 2019
    350
    而且这个 Status Code 直接用 HTTP Status 更好吧,没必要扔到 Response body 里
    mwftts
    mwftts
    Mar 20, 2019 via Android
    351
    一个编程门外汉来说,status 是的状态码,也可以提示错误以外的代码,例如成功和警告,这样不需要额外的定义
    xuanbg
    xuanbg
    Mar 20, 2019
    352
    看到楼主的返回数据格式,就想起被微信支付接口支配的恐惧。。。我都想不明白为啥正确和错误要返回不同的数据格式???我在接到返回数据前,不可能知道结果是正确还是错误阿喂!
    kingsonl
    kingsonl
    Mar 20, 2019 via iPhone
    353
    当然是选择简单明了的 所以第一种 如果是我 code message
    undefined8
    undefined8
    Mar 20, 2019 via Android
    354
    就算听你的,最后得到什么呢。。
    ryan18
    ryan18
    Mar 20, 2019 via Android
    355
    真好,又一天摸鱼白拿钱
    kuyuzhiqi
    kuyuzhiqi
    Mar 20, 2019 via iPhone
    356
    支持主管,你的设计字段名太冗余了
    httplife
    httplife
    Mar 20, 2019
    357
    吓得我赶紧看下 api
    {
    "status": 0,
    "error": {
    "code": 0,
    "message": "string",
    "errors": {
    "code": 0,
    "field": "string",
    "description": "string"
    }
    }
    }
    5oiR5piv5YK76YC8
    5oiR5piv5YK76YC8
    Mar 20, 2019
    358
    @simonv3ex 那不得天天想办法和漂亮妹子吵架
    sarices
    sarices
    Mar 20, 2019
    359
    {
    "错误码: 0
    "错误信息": "lalala"
    }
    oops1900
    oops1900
    Mar 20, 2019
    360
    其实哈,你是不想再公司待了,这不是借口吵不吵的问题,你想在公司待这还用问么?当然听主管的,感觉找工作吧。新都不在这儿。
    HackerPainter
    HackerPainter
    OP
    Mar 20, 2019
    361
    @iidestiny 这你都知道?
    guoyuchuan
    guoyuchuan
    Mar 20, 2019
    362
    看不懂这是为什么,难道我的政治觉悟太低了?
    saeed
    saeed
    Mar 20, 2019
    363
    还真看不惯用 错误,成功 状态都放在 errorcode , 别告诉我只有失败的状态才放在 errorcode 其实用啥都行,实现需求就行 就一个字段名的问题吵一天,真是极品
    macszh2013
    macszh2013
    Mar 20, 2019
    364
    你主管是对的
    wxl1380610
    wxl1380610
    Mar 20, 2019
    365
    真闲
    phper69
    phper69
    Mar 20, 2019
    367
    主管跟你吵得不是接口,是权力
    rexyan
    rexyan
    Mar 20, 2019
    368
    建议加上个唯一的 response id
    xinjiang
    xinjiang
    Mar 20, 2019
    369
    先做人,再做技术
    Honwhy
    Honwhy
    Mar 20, 2019
    370
    我的习惯仅供参考
    code 对应编码,不完全是数字,比如 S00,B00,S=System B=Business
    status 类似于 HttpStatus 的语义,用数字描述,
    message, msg, errorMsg, desc,这些都不关键
    wupher
    wupher
    Mar 20, 2019
    371
    为个字段名就争执了一天,如果没有历史或者其它原因,值得吗?
    xinjiang
    xinjiang
    Mar 20, 2019
    372
    你这样的人不该在别人手下做事,应该自己开公司自己干,为了一段代码设计和主管吵一天,真是委屈你了
    jorneyr
    jorneyr
    Mar 20, 2019
    373
    难道你们的接口都是返回错误信息么,字段都是描述错误为主 ^_^
    toJoker
    toJoker
    Mar 20, 2019
    374
    {
    "code":,
    "msg": "",
    "data": ......
    }
    ayumi043
    ayumi043
    Mar 20, 2019
    375
    服了。两个没本子差别啊,或者有文档说明就 ok 了。这点破事也能吵。
    justin2018
    justin2018
    Mar 20, 2019
    376
    那年在缅甸,因为赌石,我把护照都压上了,结果还是输了。赌石的地方在缅甸诺瓦达卡村,无奈之下我决定铤而走险,越境回国,可惜被缅甸边防军发现,向我开枪扫射,我左脚中弹,一瘸一拐的奔向祖国一步一步的挪,左脚的疼痛让我难以忍受,记得当时身边好多大树我都没扶,就服你 😁

    开个玩笑~~~ 😅
    我老大说啥 我就做啥子~ 😅
    MyFaith
    MyFaith
    Mar 20, 2019
    377
    @tabris17 你这都错别字了
    wyqn
    wyqn
    Mar 20, 2019 via Android
    378
    @yiyi11 吔屎啦!梁非凡?😂
    Maiiiiii
    Maiiiiii
    Mar 20, 2019
    379
    理论上讲,这个对外输出的接口要配文档的,无论哪种方式有文档的话就都不是问题。
    st2udio
    st2udio
    Mar 20, 2019
    380
    @feikeq
    code 是给前端操作的选择,比如我这个错误返回,我前端需要作出一些变化。你直接给个字符串,我用字符串去判断吗?
    RyanOne
    RyanOne
    Mar 20, 2019
    381
    腾讯的某接口 案例
    ```javascript
    {"retCode":"0","retMsg":null,"retObj":true}
    ```
    atonku
    atonku
    Mar 20, 2019
    382
    你自己辞职吧,你定义的这是个鬼哦
    crackhopper
    crackhopper
    Mar 20, 2019
    383
    function beFriendly(leaders_def){
    return {
    errorCode: leaders_def.status,
    errorMsg: leaders_def.error
    }
    }

    一个函数帮你解决分歧,不客气。
    1354219429
    1354219429
    Mar 20, 2019
    384
    好搞笑 这都可以吵架
    zongren
    zongren
    Mar 20, 2019
    385
    还是工作不饱和·
    onepunch
    onepunch
    Mar 20, 2019
    386
    我现在终于理解为什么 go 要求 { 不能另写一行了,因为这些问题,脑浆子都能打出来
    houzhimeng
    houzhimeng
    Mar 20, 2019
    387
    感觉楼主本质上是 diss 主管的技术能力,而不是接口命名
    iv2ex
    iv2ex
    Mar 20, 2019
    388
    支持你离职
    string643
    string643
    Mar 20, 2019
    389
    离职吧。很闲啊,这都能吵起来,以后有的气受,早离早解放😬😬
    yjxkwp
    yjxkwp
    Mar 20, 2019
    390
    别吵了,用
    zhuangtaima 和 xiaoxi 吧
    l00t
    l00t
    Mar 20, 2019
    391
    看了评论我震惊了。用 errorno/errorcode 来表示返回值不是 C 语言开始就有的传统了吗? 怎么表示正确?返回 0 就表示正确啊。这还需要设计两种不同的返回格式?

    只能说时代变化快,遵循传统的做法原本是可以减少沟通成本的,现在反而增加了沟通成本
    publicvoid
    publicvoid
    Mar 20, 2019
    392
    现在的年轻人啊,定个接口都和主管吵还想离职,我们这些老年人,老板说啥就干啥,生怕丢了工作😂
    feikeq
    feikeq
    Mar 20, 2019
    393
    @st2udio 别这么死脑筋兄弟.....
    前端 调取 API 接口时可以指定接口语言呀! 就像微信获取个人资料信息一样,可以指定 language=ZH-CN
    这样返回的性别什么的就是中文..
    fundebug
    fundebug
    Mar 20, 2019
    394
    有毒,这是段子吧...
    nomemo
    nomemo
    Mar 20, 2019
    395
    看了眼觉得你们俩都不咋地,不止是技术上的
    GeruzoniAnsasu
    GeruzoniAnsasu
    Mar 20, 2019
    396
    GeruzoniAnsasu 23 小时 15 分钟前 via Android ♥ 3
    我感觉诸位也能在这个帖子里吵一天。。。



    算应验了吗
    zjyl1994
    zjyl1994
    Mar 20, 2019
    397
    没啥可吵得,他说做啥你做啥就是了。上班就是为了赚钱,没什么忍不了的。
    zichen
    zichen
    Mar 20, 2019
    398
    aws,阿里云之类的都有接口规范文档,看看人家是怎么设计的,参考一下就行了。
    jabin88
    jabin88
    Mar 20, 2019
    399
    {"code":"200","msg":"........",......}这样可能比较好
    公司项目当然是听主管的呀,你是拿钱干活。你自己项目就是随便你自己了
    cexy
    cexy
    Mar 20, 2019
    400
    ------------------翻页标记线-----------------------
    1  2  3  4  5  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4340 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 187ms · UTC 08:10 · PVG 16:10 · LAX 00:10 · JFK 03:10
    ♥ Do have faith in what you're doing.