Open tiantingrui opened 2 years ago
Test Driven Development
简单来讲,TDD 只是通过单元测试来推动代码的编写,然后通过重构来优化程序的内部结构。
这很容易被理解成只需要先写单元测试就可以驱动出高质量的代码。
推荐书籍:Kent Beck 的著作《测试驱动开发》
这本书的观点让我感触很深
测试驱动开发不是一种测试技术。它是一种分析技术、设计技术,更是一种组织所有开发活动的技术
分析技术: 体现在对问题域的分析,当问题还没有被分解成一个个可操作的任务时,分析技术就派上用场,例如需求分析、任务拆分和任务规划等
设计技术: 测试驱动代码的设计和功能的实现,然后驱动代码的再设计和重构,在持续细微的反馈中改善代码。
组织所有开发活动的技术: TDD 很好地组织了测试、开发和重构活动,但又不仅限于此,比如实施 TDD 的前置活动包括需求分析、任务拆分和规划活动,这使得 TDD 具有非常好的扩展性。
对于如何保证“代码简洁可用”可以使用分而治之的方法,先达到“可用”目标,再追求“简洁”目标。
采用TDD的最大优点(对个人而言)把控编程过程中的反馈与决策之间的差距,换句话说就是更加精确的知道开发进度。
TDD 初探 & 找零钱
什么是TDD
简单来讲,TDD 只是通过单元测试来推动代码的编写,然后通过重构来优化程序的内部结构。
这很容易被理解成只需要先写单元测试就可以驱动出高质量的代码。
这本书的观点让我感触很深
分析技术: 体现在对问题域的分析,当问题还没有被分解成一个个可操作的任务时,分析技术就派上用场,例如需求分析、任务拆分和任务规划等
设计技术: 测试驱动代码的设计和功能的实现,然后驱动代码的再设计和重构,在持续细微的反馈中改善代码。
组织所有开发活动的技术: TDD 很好地组织了测试、开发和重构活动,但又不仅限于此,比如实施 TDD 的前置活动包括需求分析、任务拆分和规划活动,这使得 TDD 具有非常好的扩展性。
TDD 目的
对于如何保证“代码简洁可用”可以使用分而治之的方法,先达到“可用”目标,再追求“简洁”目标。
TDD 的规则
采用TDD的最大优点(对个人而言)把控编程过程中的反馈与决策之间的差距,换句话说就是更加精确的知道开发进度。
TDD 的整体流程
TDD的难点