
没有一成不变
|
141
一套好的自动化测试可以让你工作得又快又好。关于修改是否造成了破坏,自动化测试能
够使你获得快速、可靠的反馈。考虑为你的代码段引入某种可验证的测试,以避免错误。
正如代码可以从责任感和仔细的评审过程中获益一样,测试也可以达到同样的效果。
要诀
自动化测试是一个极为有益的安全工具,可以帮助你建立对代码修改
的信心。
开发的主干应该是
持续集成
:一台不断签出新版本代码并进行构建的服务器。如果有什么
不好的东西溜进代码库来造成破坏,导致构建失败,你将很快发现它。自动化测试也应该
在构建服务器上运行。
18.3.3
慎重地选择战场
没有什么是一成不变的,但也不是所有的东西都应该流动不息。
所以,应该选择自己的战场。我们不可能每时每刻都更改已有代码,同时添加更多的新功
能。我们总会发现不那么令人愉快的代码,但是不论多么渴望,不能立即修复它们。工作
量太大了,可能已经超出了大规模重构的范围。
在有机会做出改进之前,需要一直背负着这些技术债。它们应该被放回到项目计划中重新
考虑。重要的债务应该成为开发路线图上的工作项,而不是被遗忘,任其恶化。
18.4
万变不离其宗
谁能处理不断变化的代码呢?这听起来像一场噩梦。跟踪许多同时变化的代码已经足够困
难,更不用说一起修改它们了。
然而,我们必须接受代码变更的事实:任何静止不动的代码都是一种负担。没有代码是不
能修改的。对一段代码恐惧到能躲就躲恐怕会适得其反。
思考题
1.
什么特性使得软件易于更改?你总能编写这样的软件吗?
2.
如何平衡“没有代码所有权”和一些人更有经验这两个事实?这将如何影响程序员的任 ...