阿甘日记(一)

来源:互联网 发布:淘宝刷钻方法 编辑:程序博客网 时间:2024/05/16 18:14

快跑,阿甘

      

  今天(2005.3.19)带了一只小狗狗回家,实际上我研究了很久也没搞清楚它究竟是什么品种,像博美,又似蜡肠,估计是因为两个对象的藕合程度太高,造成了接口污染。狗狗很小,和我的拖鞋差不多大,棕色的短毛,穿着蓝色的衣服在地上动来动去的时候,本身就很像一只拖鞋。我坚持要给它取名叫“巴蒂”,以遂我多年的夙愿,但是老婆认为小狗狗路都走不稳的样子,取这个名字实在匪夷所思,其实我自己也觉得这样做会违反命名规范,容易导致系统不易维护,而且白岩松的儿子好象也叫这个名字,重名的话,估计编译通不过。后来我觉得它应该叫“臭臭”,因为它的味道实在不够“面向对象”,估计Martin Fowler所谓的bad smell就是如此,老婆又嫌有碍观瞻。选来选去,还是叫“阿甘”吧,希望它想阿甘一样生命力旺盛,况且它傻傻的样子也算名副其实。可爱的阿甘,你会有怎样新奇的生活呢?

 

  引入了新的接口,造成系统需要大面积调整。我和老婆忙里忙外,给它做窝、煮饭、洗澡、剪指甲,整个过程中老婆每隔5分钟就跑过去捧着小狗狗瞅来看去爱不释手,造成开发速度严重下降,而且几乎没有做任何单元测试,作为项目负责人,我很生气,后果很严重。但是也没办法,新的接口没有提供任何文档可以参考,只能不停的查看源代码了。到后来,发现很多设计都不合理,只好推倒重来。我建议把每项工作都抽象出一个接口,通过工厂方法提供多中实现,但是成本太高,只好作罢。

 

  晚上我们吃饭的时候,麻烦就来了。新的接口和我们家庭的旧有系统集成得不好,兼容性也有问题。阿甘吃饭的时候把整个客厅和它自己弄得到处都是饭粒,它还开心的到处打滚,老婆一向爱干净,这时候脸都绿了,寒……..,找地方躲起来为妙,随后的10分钟发生了什么事情,不明。从后来的现场来看,我也不想知道。

 

  由于系统前期设计就很不完善,开发过程中又缺少单元测试,系统集成之后也没有Beta测试也压力测试,单纯依靠重构始终解决不了问题,当新的接口真的开始执行业务逻辑的时候,一个接一个的bug暴露出来了。阿甘始终不肯乖乖就寝,困得打呵欠的同时又不停的在窝里翻来滚去,不停嘶叫。我和老婆始终不得要领,急得团团转。没办法,人员培训和技术储备不到位,一旦遇到新的客户需求,就束手无策。眼看着新的功能模块始终无法和我们的轻量级容器整合,今天晚上可怎么办?难道要把我们的重量级容器让给它用?郁闷。

 

  运气不错,经过我们长时间的白盒测试,终于发现问题所在。原来是我和老婆为了避免新的功能模块产生内存泄露,所以在轻量级容器中多加了一层报纸,结果这导致阿甘极度不满,不停的抛出异常,而我们的调试能力又极为有限,听不懂调试信息,导致浪费了许多时间。看来多层结构不见得好啊,现场解决问题后,终于没有出现异常了,阿甘乖乖的把小脑袋搁在小爪子上睡着了,两只大耳朵软软的摊开,小爪子时不时的抽动一下,嘴角还有点口水流出来--------这个接口设计得太漂亮了。我和老婆傻傻的蹲在它的窝边,看着它小肚皮一起一伏,足足有一个小时。

 

  我亲爱的小阿甘,你什么时候才能长大,跟着我们跑来跑去?

原创粉丝点击