记一次令人哭笑不得的BUG (一)

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;

当时瞬间我血压升高,幸好他不坐在我身边,不然要挨一耳光。我细细数了下,就这一行代码。他犯了多少错误。此时,我突然想起高中一个小插曲:

     话说某日课间休息期间(午饭后下午上课前),几位同学在打牌,不幸被一领导看到了,记下名字,然后找我们班主任了。几位打牌的其中还有一位成绩不错的,班会上班主任说,你们至少犯了四大错误

  • 你不该打牌
  • 不该是你打牌
  • 你不该在这打牌
  • 你不该在这打牌被抓到

 虽然我班主任是数学老师,说话很有水平,回到我细数这个同事代码过错,也至少犯了四大错误

  • isTest  类型你不该定义为int 类型,要定义成boolean类型
  • 定义成int 类型就算了, 取值 非得弄好1 ,2 
  • 不该提供一个这样的接口
  • 不该提供这样的一个接口给我

        这就是一个简单的命名规范,甚至约定俗称,常识性的东西,偏偏有人不遵守,当然本人也有犯错的地方

  • 太相信别人的水平
  • 太自信自己的判断

还是那句话,对任何代码都要有敬畏之心,尤其涉及线上订单等敏感数据。

推荐看下

阿里开发规范

stackoverflow 程序员必备

github

阿里云服务器(想自己搭建网站的可以收藏)

 CDN上网加速

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值