驯服烂代码场景之一:活多时间紧,但我的新代码依赖于烂代码,我该如何改烂代码?

指导思想:将新代码与烂代码实现逻辑分离,这样只是对新代码写单元测试并实施TDD,而无须对烂代码写单元测试。

手法之一(当新代码的职责与烂代码明显不同,且烂代码的类已经塞满了许许多多彼此不同的职责,而新职责在很多地方被调用时):外敷类,即使用Decorator模式将新职责外覆在烂代码的职责之上,用TDD来开发新职责类。

手法之二(当新代码的职责与烂代码明显不同,且烂代码的类很难实例化并放入单元测试用具中):新生类,即将新职责放入一个新写的类中,并用TDD来开发新类,烂代码调用新类的方法。

手法之三(当新代码的职责与烂代码的职责同等重要,代码很脆弱,IDE重构工具不好使):外覆方法,即创建一个和原烂代码方法同名的新方法,在新方法中调用烂代码原先的方法,或者干脆创建一个新方法,用TDD方法开发新方法。

手法之四(烂代码以前的方法的职责已经清晰地呈现出来了):新生方法,即用TDD方法创建一个新方法,由烂代码调用。

心法之一:省时间,虽然用TDD写新代码要费些时间,但是新代码的职责没有搅和在烂代码中,便于我今后的代码理解,节省我今后读代码的时间。

心法之二:成就感,新代码的职责有TDD的单元测试罩着,而不是搅和在烂代码中无法测试,这样新代码的实施就没有挫败感,增加了自己的专业精神的自豪感。

Kent Beck、Martin Fowler、Michael C. Feathers、Robert C. Martin、Joshua Kerievsky、Gerard Meszaros等大师们的传世著作为如何提升编程技艺和代码质量提供了思想和原则上的指导,本书则为实践和融合这些思想、原则提供了过程和方法上指导。本书通过编程操练的方式讲述了如何用TDD(测试驱动开发)的方法来驯服代码,通过结对编程的对话形式展示了驯服代码的完整过程,将驯服代码所需要的思想、态度、习惯、方法和技艺完全融入编程操练实践中,是目前最具实践指导意义的驯服代码的著作。, 全书共20章,分为四个部分:第一部分(第1~10章)首先通过测试后行和测试先行两种方法完成了一个名为“码农酒店”(世界时钟)的编程操练题目,然后对这两种方法进行对比,引出了代码的概念,读者能非常直观看出哪一种方法更容易写出代码。第二部分(第11~15章)通过一个名为Trivia(答题闯关游戏)的经典编程操练题目详细讲述了驯服一段代码的过程,首先讲解了代码腐臭的识别和记录,然后讲解了如何通过一系列的重构来清除这些腐臭。第三部分(第16~18章)通过三个编程操练题目详述了编写真正的单元测试的过程,首先讲解了用提取接口的办法编写Stub来进行单元测试,以及用子类化并覆写方法的办法编写Mock来进行单元测试,然后讲解了如何将被测类与文件系统之间的这种不适用于单元测试的耦合,转化为被测类与字符串之间这种适合与单元测试的耦合。第四部分(第19~20章)总结了驯服代码的步骤及方法,首先讲解了TDD开发方法的一种实现:I-EPP-TR方法,该方法中的全面重构的概念对传统的重构概念进行了扩展,然后讨论了如何才能将前面所讨论的良好的编程方法形成习惯并固化下来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值