07/07/22
TDD在XP中处于核心地位
||
代码整洁可用

1)可预测
2)思考另一种更好的方法
……

自动测试失败 —> 重写代码
消除重复设计

不可运行 —> 可运行 —> 重构

QA:被动 —> 主动
PM:精确把握开发进度
SE:节约时间
       ||
每天都有新功能的软件成品

我们需要勇气

防倒转装置

编程解决的问题越复杂,每次测试所覆盖的范围就应该越小

《解析极限编程》











(by Dia)

改变了编程习惯

No:软件的安全性,并行性

只保留一个球在空中!

模式拷贝
模式一般都是半成品,用到你的项目中还要再回一次炉。

TDD Steps:
1. add a new test quickly
2. run all tests, failed
3. modify
4. run all tests again, ok!
5. refactor

我们不是从建立对象开始,而是从测试开始!

消除程序中的重复设计就是消除依赖关系
                               ||
                            SQL代码到处都是,etc

总体流程:
1. 写一个测试程序
Story、interface
2. 让测试程序运行
1)伪实现
2)显明实现——将真实的实现代码键入
尽快地让测试程序可运行是压倒一切的中心任务!
3. 编写合格的代码
clean code that works!
首先解决“可用”的问题,再解决“代码整洁”的问题。


07/07/23
Ch3 一切均等
数值对象(Value Object)
TDD <== 三角法
          ||
我们只有在例子达到2个或更多时才对代码实施一般化。

Ch4 私有性
我们并非要追求绝对的完美。
通过表述任何事物都从代码和测试两条线路来走,我们希望尽可能地减少缺陷,以在前进的路上增强自信。

Ch5 法郎在诉说
当瑞士法郎与美元的兑换率为2:1的时候,5美元+10瑞士法郎=10美元
快捷方式?
拷贝美元Dollar的实现代码,并用法郎Franc代替美元Dollar。

通过小的测试先行动起来;
无所顾忌地通过复制和编辑来写出这个测试程序;
                  ||
              让测试程序工作
自我保证在重复设计消除之前绝不回家。


07/07/27
Ch6 再谈一切均等
丑陋的代码拷贝和粘贴
        ||
一个类继承另一个类  bad!
寻找一个共同的父类  good!

你将经常在没有足够测试程序的代码中实施TDD(至少未来十年左右)。当没有足够的测试程序时,你一定会遇到不被测试程序支持的重构

写出你希望拥有的测试。如果你不这样做,那么迟早会在重构时出现麻烦。

Ch7 苹果和桔子
比较法郎对象与美元对象
things to do:
1. 着手解决一个困扰我们的难题并将它转化为一个测试程序
2. 用一种合理但不完美的方法(getClass())使测试程序运行通过
3. 除非有更好的动机,否则不要引入更多的设计

Ch8 制造对象
美元/瑞士法郎之间的重复设计


欢迎大家访问我的个人网站 萌萌的IT人