zoukankan      html  css  js  c++  java
  • 一个bug案例分析

    Bug描述:

          某大型系统的一个提供基础数据服务的子系统A进行了一次升级。升级的内容为:优化了失败重传功能,在优化的同时,开发人员发现传输数据的时间戳精度只是精确到了秒,于是顺手把精度改成了1/100秒。在程序上线数小时后,使用A数据的B系统发现少量数据缺失现象,同时监控系统提示产生Error。进过追踪日志,发现丢失的数据在插入内存数据库时失败。进一步分析原因,原来B系统在读取A提供的数据时,用到了时间戳。时间戳的长度变更引起了B系统对其解析的错误,因此入库失败。

    比较有效的改进点:

    1.提供基础服务的A系统应该对它提供的服务方推送变更通知,进行兼容性测试。

    2.提供基础服务的A应该尽量保证暴露数据的稳定性,并进行良好的版本控制。

    上面2点说起来很简单,实际上做好很难。如果是异地开发呢?如果A与B属于不同的公司呢?因此,上面类型的bug在现实世界中层出不穷。能够从根源上降低或者杜绝这种缺陷是企业的硬功夫。

  • 相关阅读:
    P2149 [SDOI2009]Elaxia的路线
    P1346 电车
    P3174 [HAOI2009]毛毛虫
    P3047 [USACO12FEB]附近的牛Nearby Cows
    P4053 [JSOI2007]建筑抢修
    P2607 [ZJOI2008]骑士
    [HNOI2006]马步距离
    [POI2014]Hotel
    [BZOJ3856]Monster
    [BZOJ2819]Nim
  • 原文地址:https://www.cnblogs.com/skytraveler/p/3519781.html
Copyright © 2011-2022 走看看