首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sm0king
V2EX  ›  职场话题

请教后端大佬一个问题,没法设置可选值?

  •  
  •   sm0king · 333 天前 · 3402 次点击
    这是一个创建于 333 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天跟后端联调一个查询的接口。 搜索条件并不是必填,都是可选的,于是跟后端说,不选的筛选条件就不传了。刚开始也答应了。

    联调的时候,接口一直报缺少查询条件,也没说缺少什么,于是就问后端怎么回事。 后端刚开始说,我 swagger 上测的没问题,肯定是你代码有问题。 然后就发现所有的条件都是必填,问后端怎么回事,他说,那你把所有未填的筛选条件都赋个 0 传过来呀,不传肯定报错了。

    当时我就懵逼了,但无奈说不动,只能改,我把所有筛选条件加了个全部,值是 0,但是产品找过来说,不能有全部这个筛选条件,还把我哔哔了一顿,有种夹在载中间不好做人的感觉。

    于是再次找后端商量怎么做,这次他直接说,后端做不了,”代码都写好了,你让我怎么改?“ 我说不是很懂你代码,或许加个默认值之类的呢? 过了一会儿,后端大佬说:”不行,阿里规范不允许给默认值。“(我们不是阿里,只是大家都比较推崇规范不是么)

    我很懵逼,怎么就没法设置参数可选了呢,这个不是很常见的情况么。 因为这个事情昨天耽搁了一下午,心累。

    64 回复  |  直到 2019-03-01 11:31:22 +08:00
    zhangqilin
        1
    zhangqilin   333 天前
    后端刚开始说,我 swagger 上测的没问题,肯定是你代码有问题。
    这么说就没法合作了
    我是后端 我反正没说过这种话
    遇见问题我还会要个参数然后自己测一遍
    zhangqilin
        2
    zhangqilin   333 天前
    “后端刚开始说,我 swagger 上测的没问题,肯定是你代码有问题。”(引用上文)
    这么说就没法合作了
    我是后端 我反正没说过这种话
    遇见问题我还会要个参数然后自己测一遍
    liunian1004
        3
    liunian1004   333 天前 via iPhone
    典型的后端水平菜,代码扩展差,条件耦合在一起就说做不了。
    zhazi
        4
    zhazi   333 天前 via Android
    阿里规范你让他去阿里写代码去,require false 按照 restful 风格写接口的话 这个搜索接口应该是 get 请求 本身就应该支持不传值搜索
    sm0king
        5
    sm0king   333 天前
    @zhangqilin 在我们这里,经常听到,一般情况下联调出问题的时候都会。
    zdt3476
        6
    zdt3476   333 天前
    不是偷懒就是菜。。。
    sm0king
        7
    sm0king   333 天前
    @zhazi 对,就是个 get 请求,查询搜索。

    @liunian1004 不敢说大佬技术撇,只能期望他能修改,我在坚持让他修改。
    yylucifer
        8
    yylucifer   333 天前
    应该是可以得
    serialize 和 deserialize 可以设置些选项之类的;
    还有可能就是 validation 直接设置的全必填。
    liunian1004
        9
    liunian1004   333 天前 via iPhone
    口头说没有用,留下截图发给产品,后端自己说实现不了,你找他去。
    ob
        10
    ob   333 天前 via Android
    目测后端 java
    ob
        11
    ob   333 天前 via Android
    加上 require=false
    maemual
        12
    maemual   333 天前
    后端菜,就是这么简单。
    learnshare
        13
    learnshare   333 天前   ♥ 2
    不是做不到,也不是不符合规范
    是懒,而且内心严重排斥一切非自我的东西
    Shynoob
        14
    Shynoob   333 天前
    强硬一点
    mandy0119
        15
    mandy0119   333 天前
    。。。java 常用的后端框架也能实现参数默认值啊。。。
    CFO
        16
    CFO   333 天前 via Android
    required = false,defaultValue = 0
    我是后端 支持你怼回去
    liuml
        17
    liuml   333 天前
    很显然是后端问题,后端不配合你开发工作,然后楼主也要反思下自己沟通方面是不是存在问题,如果好好沟通都没有效果的话,那你可以上报领导了!
    whypool
        18
    whypool   333 天前
    后端懒,代码没扩展性
    请求用实体对象去接收,缺少字段就报错,如果需求有变,字段的增删,后端改到哭,自己挖的坑,自己跳
    real3cho
        19
    real3cho   333 天前
    什么叫”代码都写好了,你让我怎么改?“
    又不是不可逆操作,默认参数都实现不了,算哪门子大佬。
    ghostg00
        20
    ghostg00   333 天前
    这么简单的东西 就是后端菜 再不就是 后端不想改
    triptipstop
        21
    triptipstop   333 天前   ♥ 2
    我倒是很希望 用上不上的参数 就别传给我了
    可是 很多前端 非要传个空值给我 说懒得做判断?
    是这回事儿吗?
    yanqing07
        22
    yanqing07   333 天前
    不给默认值,然后要你全部给个 0,那和给默认值有什么区别。
    这时候肯定叫上产品一起讨论啊,不要自己一个去的。
    前后端都是为这个产品(不是指人)服务的,不符合需求肯定是要改的。大家在商量下才能做出产品,那有各做的各的。而且,做完不能改的情况一般是这个接口很多不同端在用,才可能没法改。但是,肯定有折衷方案,例如,在这接口基础上扩展一个
    Malthael
        23
    Malthael   333 天前
    后端就他一个吗?不要怂,怼死他
    v2chou
        24
    v2chou   333 天前
    后端这么叼? 怼死他,还代码都写好了,你让我怎么改,
    metabot
        25
    metabot   333 天前 via Android
    换 GraphQL 皆大欢喜🙈
    tongz
        26
    tongz   333 天前
    传什么参数怎么传这种问题一般是谁嗓门大谁说了算
    Vegetable
        27
    Vegetable   333 天前
    叹为观止...
    我决定去找一下他说的不能设置默认值这个规范的出处,并顺便找找有没有说怎么处理空值.
    Cbdy
        28
    Cbdy   333 天前   ♥ 2
    我有的时候看一些后端程序员的代码,会想:天呐,写这个接口的是羊驼吗?
    Damon4V
        29
    Damon4V   333 天前
    后端自己学起来,这样就可以直接怼回去:“我来写,你滚蛋”;
    karllynn
        30
    karllynn   333 天前
    为啥不能设置默认值,什么见鬼的规范,文档写清楚不就完了=,=
    af463419014
        31
    af463419014   333 天前
    这个后端不是懒就是菜,欺负新人还没人品
    Hieast
        32
    Hieast   333 天前 via Android
    可选的参数应该后端实现默认值,嗯,我是后端。

    不过我认为前端也应该实现一套,以应付产品。
    zwh2698
        33
    zwh2698   333 天前 via Android
    这个问题是一个设计哲学问题,首先说为什么阿里不提供默认值,因为在无状态,可重入的时候,后端提供默认似乎就是成了有状态。其次 所以函数要设计功能是原子正交,如果参数带上变化可以获取相应的计算结果,那么一定会使用参数,而不会内部使用默认值。

    针对这个问题,我其实不明白是后台不支持部分参数带有默认值,还是怎么的?如果是这样,那也至少要符合业务需要,所以代码原则都是为产品服务的,代价最少,效果最好,这个代价包含开发维护运维等。

    另外我觉得你们就是一个沟通问题,你发这个贴,你们还是没有沟通,没有多少结果,重要的心平气和的喊上你的主管,你和他,以及他的主管,大家把这个事摊开说,约定清楚了,以后就不会扯皮。重要的是建立规则和优化规则。
    mejee
        34
    mejee   333 天前 via Android
    后端一般都可以很简单的实现默认值。问题就在于你们怎么约定的,按约定来
    Enix
        35
    Enix   333 天前 via iPhone
    缺个能定规范的领导
    rochek
        36
    rochek   333 天前
    后端开发一枚

    接口没有文档么。
    一般来说,前端在调接口开发的流程,一般来说。
    首先后端写代码,单元测试通过,接口文档写好,给前端,前端去写调用。

    照着接口文档写,后端没正确返回是后端的问题,你自己没看明白是前端的问题。
    职责很明确的。
    wolfie
        37
    wolfie   333 天前
    『他说,那你把所有未填的筛选条件都赋个 0 传过来呀』还有这么干的?
    mxy940127
        38
    mxy940127   333 天前
    不用想了 不是后端水平太菜 就是太懒
    v2epS
        39
    v2epS   333 天前
    后端问题~参数可以缺省很正常需求
    wysnylc
        40
    wysnylc   333 天前
    后端彩笔
    10Buns
        41
    10Buns   333 天前
    后端开了,我来和你合作哈哈哈
    183387594
        42
    183387594   333 天前
    为啥没后端吐槽的 ,我们客户端传 空 传 0 还传字符 'null' 我都惯着他
    fareware
        43
    fareware   333 天前
    我写的 bug 不可能有问题!
    xiaoxinxiaobai
        44
    xiaoxinxiaobai   333 天前 via Android
    首先你不要改产品设计,可以自己构造请求嘛,可以把全部参数传过去,空值就好,总有办法解决,再者就是沟通嘛,大家都说了后端不是懒就是水平不行,或者他沟通也不行,被人怼有 bug 难免有情绪吧
    sonyxperia
        45
    sonyxperia   333 天前
    垃圾后端,建议打一顿
    dmjob2015222
        46
    dmjob2015222   333 天前
    拉出去,一顿胖揍,问题圆满解决!
    scnace
        47
    scnace   333 天前 via Android
    这个简单啊!把后端的 leader 后端 你自己的 leader 产品拉一个群 把事情(和 curl )发出来 @一下 leader 就可以了
    hcy1996
        48
    hcy1996   333 天前
    一个小建议 前端也可以适当学学后端 不然听他忽悠你还不能反驳他
    limuyan44
        49
    limuyan44   333 天前 via Android
    有可能是真的菜。。
    Yarnus
        50
    Yarnus   333 天前
    不是偷懒就是菜...
    zj9495
        51
    zj9495   333 天前
    又懒又菜
    981764793
        52
    981764793   333 天前 via Android
    我做 android 的时候接口有问题出现多了都说你把代码打开我看看。。。现在做后端,出问题都说 url 发来,我自己慢慢看会
    q8164305
        53
    q8164305   333 天前 via Android
    还是自己学点后端的,很多后端不仅菜而且脾气还大,跟他们沟通的时间,代码都看完了
    rob001
        54
    rob001   333 天前
    后端应该是能处理的,前端放 0 和后端放 0 都可以,按道理是后端的锅,无参数则放 0 这件事真要做的话,也应该是后端来做;
    jssyxzy
        55
    jssyxzy   333 天前
    神 tm 阿里规范。
    这种东西参考就是了,死扣的明显就是新手,半吊子。
    jssyxzy
        56
    jssyxzy   333 天前
    @q8164305
    我就是后端方向的,不过我确实遇到的人里面,前端好像整体来说确实比后端容易相处。
    NicholasYX
        57
    NicholasYX   332 天前 via iPhone
    后端不是菜就是懒
    xuanbg
        58
    xuanbg   332 天前   ♥ 1
    @af463419014 你错了,这个后端是又懒又菜,还极端不负责任!
    没有条件传 0 ? 0 就不能是条件??真到业务就是要筛选 0 的时候就傻逼了。。。都 9102 年了,还有人以为 null 是个没用的东西吗?
    vindurriel
        59
    vindurriel   332 天前 via iPhone
    如果会用 swagger 的话 自己调不就好了 不用沟通
    Cbdy
        60
    Cbdy   332 天前
    @xuanbg 我还真遇到过这样的人,据说还是阿里出来的
    Outshine
        61
    Outshine   332 天前
    前端设置默认值,如果后期要该默认值 app 岂不是还要更新?
    xianxiaobo
        62
    xianxiaobo   332 天前
    这个虽然是后端态度不好,但是前端确实是可以做的,产品说不能有全部,假设是一个下拉框,那就是必填?如果是多选框,没选就传 0,选了就传选好了的 ID,也有可能是我没理解楼主意思。
    guixiexiezou
        63
    guixiexiezou   332 天前
    我是后端,这后端确实问题很大。一般情况下不传值都会默认一个值的
    southsala
        64
    southsala   332 天前
    后端做了必传判断,让他改成可选就完了,就是懒
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   945 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 31ms · UTC 19:05 · PVG 03:05 · LAX 11:05 · JFK 14:05
    ♥ Do have faith in what you're doing.