《Test-Driven Development》学习点滴记录
2006-09-07 22:20
316 查看
1.当我们开始某一项工作时,我们需要建立一个计划清单(to-do list),以提醒我们需要做些什么事情。
comment:从小学的时候,老师就开始这样说了。诶,都二十多年了,还是没有做到:(
2.记住,我们不是从建立对象开始,而是从测试开始
3.尽快使测试运行起来:
a .伪代码:返回一个变量,并逐渐用变量替代常量,直至伪代码都变成真实代码。
b. 显示实现:将真实的实现键入。
4.数值对象(Value Object):数值对象的一个要求就是一旦数值对象实例变量在构造函数中指定,那么以后再也不允许发生变化。数值对象的一个隐含意思就是所有的操作都必须返回一个新的对象。另一个隐含意思:必须实现Equals();
5.无所顾忌地通过复制和编辑来写出这个测试程序。
自我保证在重复设计消除之前,决不回家。
comment:测试代码的复杂度为1.它没有分支和循环,所以很多代码可以通过拷贝和编辑来写测试。
6.重构前,保持程序测试完整性。
comment:很多时候,总是想偷懒,这个已经开始有体会了。
7.测试驱动开发过程:
a.加入一个小的测试
b.运行所有的测试,运行失败。
c.适当修改
d.运行测试并成功
e.重构,消除重复设计,优化设计结构。
这里可以加入一张图片:
8.测试程序是TDD的副产品。不要指望这些测试代替其他测试,如性能测试,压力测试等
9.TDD反复出现的三个方面:
a.让测试利落运行的三个方法:伪代码,三角法,以及显明实现(Obvious Implemention)
b.把消除代码与测试间的重复设计作为驱动设计的一个手段
c.控制测试间隙的能力,当道路光滑时,增加摩擦力,在状况解除时,就开快一些。
comment:第三句不是很懂:(
10.当建立一个测试,迫使创建一个稍后要用到的类。
11.为了消除显示类定义而引入多态。
12.让测试尽快通过编译,是压倒一切的中心任务。
13.除非有更好的动机,否则不要引入更多的设计。
14.这个是Martin Fowler在序中提到的:模式拷贝。
模式拷贝,本身并不是好的编程方法。模式一般都是半成品,用到你的项目中时要再回炉一次。然而处理这样问题的一个好的方法是:一开始先不管那么多,把模式拷贝过来,接下来采用重构和测试优先的办法对其进行改编。---似乎很有道理:)
============2006-9-7继续学习中============
comment:从小学的时候,老师就开始这样说了。诶,都二十多年了,还是没有做到:(
2.记住,我们不是从建立对象开始,而是从测试开始
3.尽快使测试运行起来:
a .伪代码:返回一个变量,并逐渐用变量替代常量,直至伪代码都变成真实代码。
b. 显示实现:将真实的实现键入。
4.数值对象(Value Object):数值对象的一个要求就是一旦数值对象实例变量在构造函数中指定,那么以后再也不允许发生变化。数值对象的一个隐含意思就是所有的操作都必须返回一个新的对象。另一个隐含意思:必须实现Equals();
5.无所顾忌地通过复制和编辑来写出这个测试程序。
自我保证在重复设计消除之前,决不回家。
comment:测试代码的复杂度为1.它没有分支和循环,所以很多代码可以通过拷贝和编辑来写测试。
6.重构前,保持程序测试完整性。
comment:很多时候,总是想偷懒,这个已经开始有体会了。
7.测试驱动开发过程:
a.加入一个小的测试
b.运行所有的测试,运行失败。
c.适当修改
d.运行测试并成功
e.重构,消除重复设计,优化设计结构。
这里可以加入一张图片:
8.测试程序是TDD的副产品。不要指望这些测试代替其他测试,如性能测试,压力测试等
9.TDD反复出现的三个方面:
a.让测试利落运行的三个方法:伪代码,三角法,以及显明实现(Obvious Implemention)
b.把消除代码与测试间的重复设计作为驱动设计的一个手段
c.控制测试间隙的能力,当道路光滑时,增加摩擦力,在状况解除时,就开快一些。
comment:第三句不是很懂:(
10.当建立一个测试,迫使创建一个稍后要用到的类。
11.为了消除显示类定义而引入多态。
12.让测试尽快通过编译,是压倒一切的中心任务。
13.除非有更好的动机,否则不要引入更多的设计。
14.这个是Martin Fowler在序中提到的:模式拷贝。
模式拷贝,本身并不是好的编程方法。模式一般都是半成品,用到你的项目中时要再回炉一次。然而处理这样问题的一个好的方法是:一开始先不管那么多,把模式拷贝过来,接下来采用重构和测试优先的办法对其进行改编。---似乎很有道理:)
============2006-9-7继续学习中============
相关文章推荐
- C++ 学习拾遗 —— 点滴记录C++学习过程中遇到的问题以及整理
- 记录学习的点滴(MyBatis中#{}与${}区别)
- 记录自己学习C++的点滴,(高手请指点) 偶能承受打击
- 记录学习点滴-《Windows 程序设计》-1-1
- 小Y学习andrpid点滴记录一:使用adapter小练习
- 从今天起开始涉足java的学习,记录学习的点滴
- 记录学习的点滴(Spring注解学习过程中问题总结)
- 记录学习的点滴
- 今天是10.1,以后每天记录自己学习的点滴,MVC,MVP,MVVM?
- 记录一些学习中的点滴,作为一个php新手的成长记录。
- hcnp学习记录点滴-ftp实施
- 记录java学习的点滴
- 记录学习路上的点滴
- 微信小程序学习笔记——CSS点滴记录
- 记录一下自己学习C语言的点滴
- QT学习点滴记录(五)
- 我的新浪博客--记录点滴 Linux 学习过程
- Shader学习记录点滴01
- 记录学习的点滴(JQuery 路径)
- 开通CSDN,记录学习的点滴