07/07/22
TDD在XP中處于核心地位
||
代碼整潔可用

1)可預(yù)測
2)思考另一種更好的方法
……

自動(dòng)測試失敗 —> 重寫代碼
消除重復(fù)設(shè)計(jì)

不可運(yùn)行 —> 可運(yùn)行 —> 重構(gòu)

QA:被動(dòng) —> 主動(dòng)
PM:精確把握開發(fā)進(jìn)度
SE:節(jié)約時(shí)間
       ||
每天都有新功能的軟件成品

我們需要勇氣!

防倒轉(zhuǎn)裝置

編程解決的問題越復(fù)雜,每次測試所覆蓋的范圍就應(yīng)該越小

《解析極限編程》











(by Dia)

改變了編程習(xí)慣

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

只保留一個(gè)球在空中!

模式拷貝
模式一般都是半成品,用到你的項(xiàng)目中還要再回一次爐。

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

我們不是從建立對象開始,而是從測試開始!

消除程序中的重復(fù)設(shè)計(jì)就是消除依賴關(guān)系。
                               ||
                            SQL代碼到處都是,etc

總體流程:
1. 寫一個(gè)測試程序
Story、interface
2. 讓測試程序運(yùn)行
1)偽實(shí)現(xiàn)
2)顯明實(shí)現(xiàn)——將真實(shí)的實(shí)現(xiàn)代碼鍵入
盡快地讓測試程序可運(yùn)行是壓倒一切的中心任務(wù)!
3. 編寫合格的代碼
clean code that works!
首先解決“可用”的問題,再解決“代碼整潔”的問題。


07/07/23
Ch3 一切均等
數(shù)值對象(Value Object)
TDD <== 三角法
          ||
我們只有在例子達(dá)到2個(gè)或更多時(shí)才對代碼實(shí)施一般化。

Ch4 私有性
我們并非要追求絕對的完美。
通過表述任何事物都從代碼和測試兩條線路來走,我們希望盡可能地減少缺陷,以在前進(jìn)的路上增強(qiáng)自信。

Ch5 法郎在訴說
當(dāng)瑞士法郎與美元的兌換率為2:1的時(shí)候,5美元+10瑞士法郎=10美元
快捷方式?
拷貝美元Dollar的實(shí)現(xiàn)代碼,并用法郎Franc代替美元Dollar。

通過小的測試先行動(dòng)起來;
無所顧忌地通過復(fù)制和編輯來寫出這個(gè)測試程序;
                  ||
              讓測試程序工作
自我保證在重復(fù)設(shè)計(jì)消除之前絕不回家。


07/07/27
Ch6 再談一切均等
丑陋的代碼拷貝和粘貼
        ||
一個(gè)類繼承另一個(gè)類  bad!
尋找一個(gè)共同的父類  good!

你將經(jīng)常在沒有足夠測試程序的代碼中實(shí)施TDD(至少未來十年左右)。當(dāng)沒有足夠的測試程序時(shí),你一定會(huì)遇到不被測試程序支持的重構(gòu)

寫出你希望擁有的測試。如果你不這樣做,那么遲早會(huì)在重構(gòu)時(shí)出現(xiàn)麻煩。

Ch7 蘋果和桔子
比較法郎對象與美元對象
things to do:
1. 著手解決一個(gè)困擾我們的難題并將它轉(zhuǎn)化為一個(gè)測試程序
2. 用一種合理但不完美的方法(getClass())使測試程序運(yùn)行通過
3. 除非有更好的動(dòng)機(jī),否則不要引入更多的設(shè)計(jì)

Ch8 制造對象
美元/瑞士法郎之間的重復(fù)設(shè)計(jì)


歡迎大家訪問我的個(gè)人網(wǎng)站 萌萌的IT人