V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
shitcode
V2EX  ›  程序员

公司后端的历史代码

  •  
  •   shitcode · 9 小时 24 分钟前 · 2216 次点击

    每个 company 可对应多个 shop 。 因为每个 company 可存在一个特殊店铺,早期历史代码设计的 shop_id=99 (应该是觉得不会有人会开通超过 99 家店吧),并且不记录在表中。 现在有一个客户的店铺超过了 99 家,导致代码中大量判断 shop_id=99 的逻辑执行异常。

    不止后端代码,而且客户端代码中也存在这样的逻辑判断。

    24 条回复    2026-01-30 19:16:16 +08:00
    javalaw2010
        1
    javalaw2010  
       9 小时 21 分钟前
    先把店铺拆分到两个 company 中去,再想办法解决历史遗留问题
    zhengfan2016
        2
    zhengfan2016  
       9 小时 20 分钟前   ❤️ 5
    创建商店的 func 里 if (shop === 99)shop += 1 ,绕开 id 为 99 的创建,然后加上注释解释为什么这么干
    bootvue
        3
    bootvue  
       9 小时 19 分钟前
    shop_id 如何生成的 baseline 从 100 开启
    liyanggyang
        4
    liyanggyang  
       9 小时 18 分钟前
    @zhengfan2016 我觉得这是最好的办法
    shitcode
        5
    shitcode  
    OP
       9 小时 14 分钟前
    @javalaw2010 变成两个 company 也会影响到业务,现在最低成本的方式确实是二楼的做法
    shitcode
        6
    shitcode  
    OP
       9 小时 14 分钟前
    @zhengfan2016 现在确实考虑这么干
    zhhbstudio
        7
    zhhbstudio  
       9 小时 6 分钟前   ❤️ 1
    @zhengfan2016 这就是天才吗?哈哈哈 还是说以前遇到过
    xiaowoli
        8
    xiaowoli  
       8 小时 59 分钟前
    (应该是觉得不会有人会开通超过 99 家店吧)

    你们公司怪励志的啊
    shitcode
        9
    shitcode  
    OP
       8 小时 56 分钟前
    @xiaowoli 哈哈
    Gilfoyle26
        10
    Gilfoyle26  
       8 小时 7 分钟前
    为啥一定要从代码的方向来解决呢?超过 99 给他开 2 个账号不就可以了
    ghm2mail
        11
    ghm2mail  
       7 小时 49 分钟前
    shop = -1 ,-2,-3.....
    justseemore
        12
    justseemore  
       7 小时 39 分钟前
    改一下 mysql 的 AUTO_INCREMENT 就完事了.
    justseemore
        13
    justseemore  
       7 小时 38 分钟前
    @justseemore #12 就怕不光= 还有>=
    javalaw2010
        14
    javalaw2010  
       7 小时 38 分钟前
    @shitcode #5 考虑到如果有代码逻辑是 if(shop_id >= 99) 就危险了。
    montaro2017
        15
    montaro2017  
       7 小时 38 分钟前
    把 99 改成更大的数字 比如 2147483647
    dcdlove
        16
    dcdlove  
       7 小时 36 分钟前
    shop 表的 种子升级到四位数 1000 ,然后历史所有 shop_id 加两个 00
    shitcode
        17
    shitcode  
    OP
       7 小时 21 分钟前
    @javalaw2010 这个确实是没有,都是判断 99 的,但是也说不好真存在在哪个角落
    meteora0tkvo
        18
    meteora0tkvo  
       7 小时 2 分钟前
    本来应该加多一个字段去标识判断是否是特殊店铺,而后端偷懒搞一个特殊 id 去判断
    leecqan
        19
    leecqan  
       6 小时 54 分钟前
    其实我没看懂,为啥会有异常,有大佬解释一下么
    noahjsn
        20
    noahjsn  
       6 小时 44 分钟前
    @meteora0tkvo 《论屎山代码的形成》《论后期偿还技术债的痛苦》
    konakona
        21
    konakona  
       6 小时 42 分钟前
    @javalaw2010
    @zhengfan2016
    如果没有封装,那就惨了 233
    unused
        22
    unused  
       6 小时 25 分钟前
    特殊店铺 ID 为什么不用 0 或者 1 呢
    YTNET
        23
    YTNET  
    PRO
       5 小时 30 分钟前
    所有的 99 改成 999 呢
    把这个问题留个下一个人
    ragnaroks
        24
    ragnaroks  
       4 小时 55 分钟前
    我靠,我也曾经遇到过这种问题,也是类商城系统,也是 99 是特殊值。是不是有哪个培训班的老师喜欢用 99 当特殊值啊,明明 Int32.MaxValue 或者 -1 之类的更合理
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1798 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 16:12 · PVG 00:12 · LAX 08:12 · JFK 11:12
    ♥ Do have faith in what you're doing.