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

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

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

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

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

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

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

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

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

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

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

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

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

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

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