测试驱动开发阅读笔记-第二章

43 阅读2分钟

一些废话

没想到第二章开头表达了一下和我相同的观点,也是自夸了一下啊哈哈哈哈orz.

需要注意的地方

1.为什么需要创建money来替代doller?

简单的解释:需求的扩大,相较于上一章引入了EUR货币,单纯的doller无法表示;euro和usd之间存在可以抽象的部分.

但是同时的我想提出一个思考,就是抽象的度应该如何考虑,因为不是什么场景都是如书中那般清楚明了的.在本章中其思考流程大致是这样的,一个功能被提出,以最小最贴合的方式来实现其功能,另一个功能被提出,如果两者存在共性,先抽象其共享内容,保证其共性内容可以被满足,再去分别实现多余部分.

因为没有什么好想法,暂时搁置,如果以后有这类场景遇到会补充的.提出这个问题单纯是为了转变一下思想,虽然有点牛角尖的意思.

2.什么样的重复是好重复

这边可以参考一下软件工程中的白盒测试部分,二者的理念是相近的.其实只要使得一段代码相较于其他代码有其独特的地方且不过于臃肿即可保留.

重复的类型:
  1. 完全相同的代码,指其可以通过函数抽象的方式使得代码化简且不影响原逻辑
  2. 代码类似但概念不同的代码,指其逻辑和内容大部分相似--概念相近. 前者是必须要删去的,而后者则大部分情况下存在其独特的意义,在本书中,可以防止在编写euro模块时因为不小心的错漏导致的,缺少抽象等不足之处,书中称这种现象为"回归".

回归:指代码在开发过程中反悔了原始的或者程度较低的状态,如果有一连串的测试作保障则确保新功能的加入导致损害了前功能而不被发现的情况出现.

最后注意语言细节,如浮点数的上溢