通过单元测试改善烂代码质量

需积分: 9 13 下载量 149 浏览量 更新于2024-07-26 收藏 1005KB PDF 举报
"伍斌的演讲‘用单元测试驯服烂代码’,主要探讨如何通过单元测试改善和管理低质量的代码。演讲者是一名独立编程顾问,专注于极限编程(XP)实践。内容涵盖了烂代码的定义、原因以及通过单元测试进行改善的策略和步骤。强调代码的内在质量,如可理解性、可测试性和可扩展性,这些是影响软件外在质量的关键因素。" 本文档主要讨论了如何利用单元测试来改善和管理质量较差的代码,这是伍斌作为一名独立编程顾问在2013年分享的主题。单元测试是软件开发中一种重要的实践,它允许开发者对代码的各个小部分进行独立验证,确保每个单元都能按预期工作。这对于维护和提升代码质量至关重要。 首先,演讲提出了“烂代码”的概念,指出烂代码是那些难以理解和修改的代码,可能是由于缺乏文档、命名不规范、逻辑复杂或者存在隐藏的bug等问题导致。烂代码的产生可能源于多种原因,比如时间压力、缺乏经验、不合适的编程实践或者是对问题理解不深。 接下来,伍斌强调了代码的内在质量,引用了Steve McConnell的《代码大全(第2版)》中的观点。软件的内在质量包括可维护性、灵活性、可移植性、可重用性、可读性、可测试性和可理解性,这些特性对软件的外在质量,如正确性、可用性、效率等,有着直接的影响。他特别提到了可理解性、可测试性和可扩展性作为基础的内在质量特性,因为它们直接关系到代码的长远维护和适应未来需求变化的能力。 演讲还提到,如同中医的藏象学说,软件的内在质量会影响其外在的表现。因此,通过提升代码的可理解性,使得开发者能更轻松地理解代码结构和功能;增强可测试性,确保每个组件都能独立验证,降低整体风险;而良好的可扩展性则让代码能够适应未来的功能添加和修改,这些都是提高代码质量的关键。 最后,演讲提到了驯服烂代码的策略和基本步骤,可能包括编写单元测试、重构代码、遵循最佳实践以及持续集成等方法。通过这些步骤,开发者可以逐步改进代码质量,使其更加符合极限编程(XP)的原则,从而提高软件的整体质量和可维护性。
2017-04-15 上传
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方法,该方法中的全面重构的概念对传统的重构概念进行了扩展,然后讨论了如何才能将前面所讨论的良好的编程方法形成习惯并固化下来。