07/07/22TDD在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/23Ch3 一切均等
數值對象(Value Object)
TDD <== 三角法
||
我們只有在例子達到2個或更多時才對代碼實施一般化。
Ch4 私有性
我們并非要追求絕對的完美。
通過表述任何事物都從代碼和測試兩條線路來走,我們希望盡可能地減少缺陷,以在前進的路上增強自信。
Ch5 法郎在訴說
當瑞士法郎與美元的兌換率為2:1的時候,5美元+10瑞士法郎=10美元快捷方式?
拷貝美元Dollar的實現代碼,并用法郎Franc代替美元Dollar。
通過小的測試先行動起來;
無所顧忌地通過
復制和編輯來寫出這個測試程序;
||
讓測試程序工作
自我保證在重復設計消除之前絕不回家。
07/07/27Ch6 再談一切均等
丑陋的代碼拷貝和粘貼
||
一個類繼承另一個類 bad!
尋找一個共同的父類 good!
你將經常在沒有足夠測試程序的代碼中實施TDD(至少未來十年左右)。當沒有足夠的測試程序時,你一定會遇到
不被測試程序支持的重構。
寫出你希望擁有的測試。如果你不這樣做,那么遲早會在重構時出現麻煩。
Ch7 蘋果和桔子
比較法郎對象與美元對象
things to do:
1. 著手解決一個困擾我們的難題并將它轉化為一個測試程序
2. 用一種合理但不完美的方法(getClass())使測試程序運行通過
3. 除非有更好的動機,否則不要引入更多的設計
Ch8 制造對象
美元/瑞士法郎之間的重復設計