当Bug A遇到Bug B

2002年的Bug A与2008年的Bug B同时穿越到2013年,并在某个场合相遇了。

上周六,项目组本应以一个愉快的心情结束一天的工作的,但一个2002年的Bug A与另外一个2008年的Bug B同时穿越时空来到了2013年,并且恰恰在那时那刻(下班前)相遇了,于是项目组由放松变成了忙碌,由愉快变成了紧张,17:30的下班点也因此延迟到了凌晨1:30。

Bug A来源于2002年我们发布给客户的一版客户端API,严格来说称其为Bug不免有些冤,它只是遇到Bug B时才会被触发,其只是在处理机制上缺少一些容错的考虑罢了。Bug B才是名副其实的Bug,居然明目张胆地违反协议,擅自在登录应答包的Body尾部补了一个字节的“脏数据“,导致使用我们客户端API的某企业短信通知系统出现故障。

关于这次的“故障”,我想感慨的不是这次的Bug有多么的诡异难找,而是下面这几点:

* 生产环境中场景的复杂性与多样性

任你用例再多,测试人员经验再丰富,脑力再强大,也很难设想出如此之情形。往往我们在模拟环境中测试的都很好,开发和测试人员都手拍胸脯保证说:“没问题了”。但一到生产环境中,问题就像滚雪球一样越来越多,弄得大家焦头烂额。究其源头还是在开发人员这里,开发人员是第一责任人。已经离职的制造出这两个Bug的“前辈们“肯定不会想到,他们的Bug居然穿越到2013年相遇了,否则我相信他们在当时一定会认真对待代码的。

* Bug是藏不住的

通过此例可以让我们看到:Bug终有一天是会暴露的,是藏不住的。这“潜伏”了10多年的问题不也在这次事件中暴露出来了吗。所以说我们写代码的时候,一定要心中有“追求0bug”的理想和目标,严格要求自己和自己的代码,采用各种手段,如代码评审单元测试持续集成、自动化的模拟环境验收测试等对所写代码进行“残酷”的打磨和考验,让Bug遛到生产环境的机会尽可能地小。

* 版本的变更管理有漏洞

这又是一次在产品升级后导致的“故障”,原因在于没能完整的识别出这次升级带来的所有软件变更。其少引发Bug B的那行代码的“作用”没能识别出来。这的确是个难题,如果不是原开发人员或评审人员“自发”上报此处的变更,这个变更太容易淹没在代码海洋中而丢失了。目前似乎也没有太好的办法。如果未来能有一种自动识别版本间代码不同且能识别出差异代码的语义变更的工具,那么我相信这款工具一定大卖。 

爱上跑步

生命在于运动。
                        – 伏尔泰

我无论如何都没有想到自己居然爱上了跑步。

* 缘起

这要追溯到2011年,当时的我感觉自己的身体状况十分不好,各种疲劳感和不适感统统找了上来,精力也严重不足,于是乎给自己开了副药方 – 晨跑, 期望通过锻炼身体恢复身体各个部分的机能。我坚持跑了一个多月,效果甚好:精力充沛,心情舒畅,工作效率显著提高。不过随着天气转冷,懒惰占了上风,而这 次懈怠居然持续了一年多,直到今年年初那场肺炎才再次让我警醒。挂了半个月的点滴才把肺炎治愈,我于是乎痛定思痛,下定决心一定要把运动坚持下去,不能再 半途而废了。

* 方法

跑步是我能想到的最容易实施的运动了。我每天早晨5点多(最晚不超过5:30)起床,喝上一杯温白水,简单洗漱后,套上行头,穿上鞋子,出门即跑。我一般 就是绕着小区的外围跑圈。我所住的小区不大,一圈的距离大约有670米(百度地图测距)。我一般慢跑4.6圈,总长度在3km,耗时30分钟左右。停下来 后,我会继续沿着小区散步,并做些肢体伸展锻炼:伸伸胳膊、压压大腿、活动活动颈部和肩部,这个环节大约在10分钟左右。完毕后,回家洗个热水澡,吃早 饭。

我跑步时基本上以有氧的慢跑为主,速度只是比快走快上那么一丁点儿,并一直保持这个节奏跑完全程,中间没有停歇。

我跑步的装备十分简陋,我个人也并不是很在意这方面,尤其是在夏天温度适宜的季节(不像深秋和冬季可能需要一定保暖的装备),我的全部装备就是一件棉质的短袖T恤+普通短裤+运动鞋(还不是那种专业的跑鞋)。

我跑步时是不听音乐的,个人感觉边跑边听音乐会让我失去一些跑步带来的舒畅的快感。而且像MP3播放器或手机之类的东西放在兜里还是蛮沉的,跑起来咣当咣当的,很不爽。

很多人觉得跑步是枯燥的,尤其是在城市里,周围没有什么景色,有的只是钢筋水泥制成的灰色建筑。诚然,如果能找到一条风景优美的晨跑路线,自然是更好,比 如沿着河边公园,滨海大道,森林小路等。但现实中,多数人可能很难找到这么景色宜人的跑步路线,像我这样能在一个幽静的小区内跑圈已很难得,总比在嘈杂且 污染严重的大马路上跑要强上许多。个人觉得跑步讲究的是一种心境,跑步过程是一个很自我的过程,跑的久了,就会变得心无旁鹜了,沿途的风景也变得并不是那 么重要了。

坚持锻炼是好事,但过犹不及。要根据自己的身体条件选择锻炼的频率。如果天气条件允许,我一般每周会跑4-5天,主要集中在工作日,周末一般会休息1-2天。这样做比每天都坚持跑步的效果更好,更有利于保持跑步的热情。

每天早晨起床后,第一件事就是扯开窗帘看,打开窗户闻,看看外面的温度与空气污染情况是否适宜晨跑。如果不确定,还可以打开气象网站,查看晨练指数。如果真的不宜晨练,比如PM2.5偏高,那还是乖乖待在室内看书吧,就当节奏调整了。

* 感觉

因为爱上了跑步,最近我特意找了几本关于跑步的书籍阅读,比如《跑步圣经》,虽然还没有读完。我惊奇的发现跑步给我带来的感觉与书中描述的十分吻合,真是不跑不知道,一跑忘不掉啊^_^。

心情愉悦。也许你最初几次的跑步过程会让你觉得有些疲劳,那是正常的身体生理反应。一旦过了这个阶段,根据自己的身体情况调整好了自己慢跑的节奏,你就会 在跑步过程中感觉到身体以及大脑中充盈着一种令你愉悦的物质,这种物质让你的身心都变得放松,甚至顿感烦恼也一下子少了很多。

自信,由内心迸发出的一种自信的赶角。也许是战胜身体疲劳的缘故,跑步中段你能感受到内心迸发出的一种自信的感觉,让你对眼前的工作、未来的生活都充满信心,丝毫没有畏惧。

精力充沛,思维敏捷,注意力更集中。本以为每天的晨跑会带来身体疲惫的感觉。但事实恰恰相反,每天晨跑后,都感觉身体充满了能量,尤其是上午时段,大脑运转的更加有效率,思维更加富有创造力,丝毫没有浑浑噩噩的感觉。另外做起事来注意力更为集中,工作更有效率。

除此之外,跑步还让我养成早睡早起的良好作息习惯,每天保持6-7小时睡眠足矣。

* 改进

在跑步这项运动上,自己充其量算是个入门选手,既然爱上了跑步,在一些细节方面就要逐步改进,争取做的更好。

增加热身。夏天还好,冬天即将到来,没有热身运动就开始跑的确会增加受伤的可能。

降低体重。让我难以置信的是锻炼了一个夏天,我的体重居然不降反升,目前又回到了170多斤。我尽量争取将体重降到一个适合的范围。

补充装备。还没有试过在冬天进行跑步锻炼。冬天晨跑的一个重点就是要保暖,所以应该适当购入一些装备,防止运动损伤。

强化习惯。通过每天跑步完成后在台历上做记号或投币攒装备的方法正向强化跑步习惯。

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言精进之路1 Go语言精进之路2 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats