谈谈践行 TDD 后的感受

2022-06-16 16:43:37 浏览数 (1)

大家好,我是码农小余,今天我们来讨论 TDD。本文纯属个人实践后的感受,若有不确之处,欢迎大佬指导和交流!

细心的童鞋可能看出在小余前几篇文章中都有在实践 TDD。比如 手摸手实现一个编译器(中)通过一个“时髦”的例子学 Babel 插件重构利器 jscodeshift,它们的共同点是都用了需求整理、拆解分析、写测试用例、编码这个流程——测试驱动开发(Test-Driven Development,缩写 TDD )。在进入正文之前,可以想想下面这个问题:

TDD 属于编程技术还是规范(意味着 TDD 是一种重要的敏捷需求和敏捷设计技术)?——引自 「首席架构师看敏捷数据」核心实践:测试驱动开发(TDD)简介[1]

流程环

一个 TDD 环如下图所示:

简而言之,TDD 流程包括三个环节:

  1. 在写代码之前,先写测试用例;然后执行测试结果,此时因为一行业务代码都没写,结果当然是全部用例都不通过(红色);
  2. 根据测试用例,开始写业务代码,此时测试结果逐渐从红色转为绿色;
  3. 等到用例全部通过之后,就是考虑重构事宜的时间节点了。前期为了赶项目进度,可能不会考虑内部质量(即代码质量,不会思考 SOLID 原则和设计模式等);但在合适的时机(比如空闲时或者下个迭代功能开始之前)务必做重构,这个时间点因为有“绿码”保障,对重构自然也是信心十足。

上述环节要想完美地运作,核心是要做好任务分解模块拆分

核心及实践建议

模块分解前提是需求分析。作为手里拿着大斧头的程序员

0 人点赞