Bug 背景:
我项目组需要从B项目组同步一些订单数据,B项目组提供一个dubbo接口给我调用。B项目 依赖jar 之前已经引入,并且对应的DTO 也使用过。
由于要区分测试数据和真实数据,订单有个测试标。我们项目组字段叫is_test ,取值 规则0 代表 真实数据,1 代表测试数据。
看了项目中引入B 的DTO 中测试标 也叫is_test ,我特意看了 其他用判断测试数据代码是 is_test == 1。因此我十分肯定,加确定 B项目的is_test也是
0 代表线上数据,1代表测试数据。
但是由于我的需求是查询真实数据,所以我写的查询条件是is_test = 0;需求太简单了,领导也允许我自测上线,我也信心十足,第二天产品慌张地找我线上数据乱了,真实数据被当成测试数据了,让我赶紧修复。我也慌了,怎么会有问题,一查数据库,怎么有is_test = 2 的数据,然后我下载了它们代码,看到注释 赫然写到
/**
** 1 => 测试数据,2 => 真实数据
*/
private int isTest;
当时瞬间我血压升高,幸好他不坐在我身边,不然要挨一耳光。我细细数了下,就这一行代码。他犯了多少错误。此时,我突然想起高中一个小插曲:
话说某日课间休息期间(午饭后下午上课前),几位同学在打牌,不幸被一领导看到了,记下名字,然后找我们班主任了。几位打牌的其中还有一位成绩不错的,班会上班主任说,你们至少犯了四大错误
虽然我班主任是数学老师,说话很有水平,回到我细数这个同事代码过错,也至少犯了四大错误
这就是一个简单的命名规范,甚至约定俗称,常识性的东西,偏偏有人不遵守,当然本人也有犯错的地方
还是那句话,对任何代码都要有敬畏之心,尤其涉及线上订单等敏感数据。
推荐看下
阿里开发规范
stackoverflow 程序员必备
github
页面更新:2024-04-25
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号