公司后端的历史代码

10 小时 45 分钟前
 shitcode

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

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

2269 次点击
所在节点    程序员
25 条回复
javalaw2010
10 小时 42 分钟前
先把店铺拆分到两个 company 中去,再想办法解决历史遗留问题
zhengfan2016
10 小时 41 分钟前
创建商店的 func 里 if (shop === 99)shop += 1 ,绕开 id 为 99 的创建,然后加上注释解释为什么这么干
bootvue
10 小时 40 分钟前
shop_id 如何生成的 baseline 从 100 开启
liyanggyang
10 小时 40 分钟前
@zhengfan2016 我觉得这是最好的办法
shitcode
10 小时 36 分钟前
@javalaw2010 变成两个 company 也会影响到业务,现在最低成本的方式确实是二楼的做法
shitcode
10 小时 36 分钟前
@zhengfan2016 现在确实考虑这么干
zhhbstudio
10 小时 27 分钟前
@zhengfan2016 这就是天才吗?哈哈哈 还是说以前遇到过
xiaowoli
10 小时 20 分钟前
(应该是觉得不会有人会开通超过 99 家店吧)

你们公司怪励志的啊
shitcode
10 小时 17 分钟前
@xiaowoli 哈哈
Gilfoyle26
9 小时 28 分钟前
为啥一定要从代码的方向来解决呢?超过 99 给他开 2 个账号不就可以了
ghm2mail
9 小时 11 分钟前
shop = -1 ,-2,-3.....
justseemore
9 小时 0 分钟前
改一下 mysql 的 AUTO_INCREMENT 就完事了.
justseemore
9 小时 0 分钟前
@justseemore #12 就怕不光= 还有>=
javalaw2010
8 小时 59 分钟前
@shitcode #5 考虑到如果有代码逻辑是 if(shop_id >= 99) 就危险了。
montaro2017
8 小时 59 分钟前
把 99 改成更大的数字 比如 2147483647
dcdlove
8 小时 57 分钟前
shop 表的 种子升级到四位数 1000 ,然后历史所有 shop_id 加两个 00
shitcode
8 小时 43 分钟前
@javalaw2010 这个确实是没有,都是判断 99 的,但是也说不好真存在在哪个角落
meteora0tkvo
8 小时 24 分钟前
本来应该加多一个字段去标识判断是否是特殊店铺,而后端偷懒搞一个特殊 id 去判断
leecqan
8 小时 16 分钟前
其实我没看懂,为啥会有异常,有大佬解释一下么
noahjsn
8 小时 6 分钟前
@meteora0tkvo 《论屎山代码的形成》《论后期偿还技术债的痛苦》

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1189537

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX