标签:
2015年春节,住在家里新盖的房子里,因为种种原因还没通电,更别说网络了,所以我没事的时候就看看《驯服烂代码》(过年回家只为和家人呆一起,所以也很少出去...)。在懵懵懂懂中就看完了,虽然不能说有什么大彻大悟的,但看书总归是好的,所以呢,就做个笔记吧。也以此谨记2015年春节:平淡而真实。
《驯服烂代码》:首先以一个例子开题---作为一个时钟管理员,我想通过设置特定手机上的时间,实现同步更新酒店里显示的不同地区(时区)的时间。抛出烂代码问题(程序bug,代码“腐臭”),再问题进行处理后又抛出一个大问题----"测试先行还是测试后行",当然它也是点了一下TDD(测试驱动开放的优点)。随后说明了何为烂代码,如何处理烂代码(有些简单可以直接修正,有些则是用“TODO”加以指明,待后续优化),根据用户意图编写测试用例,固化软件行为的同时按部就班的处理“TODO”。通过分而治之的思想将烂代码重构(重写代码或者根据原有代码加以重构)。通过分而测之的思想(接口提取或者子类化方法覆写)使得程序更加符合面向对象设计五大原则(SOLDI)。最后提到了单元测试、个人习惯的养成(理论哲学吧)以及一些环境的搭建。当然书中也列举了不少例子循序渐进引入正题的,还有每个章节最后的归纳总结也是十分的经典。
书中给我印象深刻的是:
一、整理并编号需求列表---绘制出用例类图----用例图。
二、用一句话描述用户正题需求:“作为<角色>,我想通过<条件>,实现<目的>”。这个还是比较经典的。
三、通过“TODO”占位的方式描述代码实现意图
四、分而治之的思想,对代码进行重构,通过设计的原则实现接口的提取、隔离,功能的划分、归纳到具体的类。(核心)
五、TDD思想,测试驱动开发,很少接触过,因为我涉及到的开发都是测试后行的。没有说以最小的测试实现进行深入的。不过这个貌似还是蛮好玩的。
六、接口的提取、第三方类库的封装的意义。
七、细节。书中提到代码管理工具提交前Commit Message的编写,一些快捷方式的使用这些细节的东西,是值得学习的。
《驯服烂代码》是一本不错的书,我并未能够理解其中的奥妙,只是略知皮毛而已,例如对其核心部分只用了一句话(第四点)点名,显然是不够的。如若有理解不对的地方,还请高手指明。
Thanks!2015-02-24
标签:
原文地址:http://www.cnblogs.com/Joy-et/p/4298686.html