说说TDD的好处和坏处-对话
小帆 17:20
誰來科普下TDD的好處和壞處是啥?我們市場VP聽說了TDD以后情有獨鐘,但是大致看了一些好像很難推廣?
菌菌 17:21
好處是大大的,壞處是成本很高
羅耀秋 17:22
你自己開發(fā)寫代碼 你愿意這樣干不
小帆 17:23
@JuneC?好處具體是啥?
福瑞德孟 17:24
對于一錘子買賣的項目來說,如果沒有自動化的工具,那成本一定是大于收益的;對于產(chǎn)品來說,一定是小投入,大收益
菌菌 17:28
據(jù)說是在源頭發(fā)現(xiàn)問題
菌菌 17:28
測試更貼近需求等等
韓炳濤 17:42
如果是想通過TDD把不靠譜的工程師變成靠譜的,可能成本更高
james 18:45
實際上我們在兩個團隊里實踐敏捷,15個人里培養(yǎng)了5個不錯的全棧。然后3個跳了。。。培養(yǎng)成本不高,留人的成本會比較高[吐]
james 18:57
tdd的實踐,我們刻意想做,但是沒做成。結(jié)果有一次重構(gòu),只要求一個故事至少一個用例覆蓋。不知不覺中,團隊將單元測試架構(gòu)不斷優(yōu)化,結(jié)果寫一個用例不到5分鐘。這時有同事先易后難,先寫測試?yán)?#xff0c;tdd的思維莫名其妙的產(chǎn)生了
james 18:58
后來回顧,測試架構(gòu)足夠簡單,團隊才有意愿去實踐tdd,從而帶來更多主動性去優(yōu)化測試架構(gòu)
james 19:01
后來嘗試在成熟的架構(gòu)上實踐tdd,結(jié)果測試架構(gòu)沒有中間的演進(jìn)優(yōu)化過程。結(jié)果一個用例從一開始就很難寫,團隊就沒人愿意寫,除非你將測試?yán)O(shè)定為交付標(biāo)準(zhǔn)
james 19:04
而且補測試?yán)那闆r居多,因為測試?yán)耐茖?dǎo)比正常程序還困難。補充一下,我們會寫設(shè)計文檔,先進(jìn)行過推導(dǎo),所以直接寫程序會比較容易
張克強 19:32
@james?是的,tdd應(yīng)當(dāng)能快速提升技能,留人要加錢啊
張克強 19:39
tdd的好處主要有:
1,編出來的程序是自帶測試的,可靠性好,缺陷少
2,能大大減少debug的需要,尤其減少單步調(diào)試,從這里能節(jié)約時間
3,功能的實現(xiàn)有點像 數(shù)學(xué)里的歸納法, 直接計算 n的情況,很難,但是先計算1的情況,再計算2,再計算從n-1到n,然后就解出來了
張克強 19:40
對于第三點,這是非常美妙的感覺,效率提升非常明顯,而且?guī)y試通過的。
張克強 19:41
tdd與需求的關(guān)聯(lián)不是特別直接。 atdd才是直連需求
穿越時空的貓 19:42
說效率提升有點過了。質(zhì)量提升是肯定的。工作量擺那兒呢。
張克強 19:44
對全棧高手而言,效率提升是必然的。
張克強 19:47
就算是單純的質(zhì)量提升,也會帶來效率提升。因為缺陷少就意味著,來回調(diào)試少。
穿越時空的貓 19:48
全棧高手往往是平庸的代名詞,人的精力是有限的。真正的全棧敲手一個公司找不出一兩個來,干活不能只靠這一兩個人。術(shù)業(yè)有專攻,全才往往是庸才。
張克強 19:51
tdd而言,主要要求程序員會自動化測試,不是需要太全的全棧
張克強 19:54
也不需要從tdd來調(diào)試性能,也不需要從tdd來調(diào)整架構(gòu)。我的看法。
張克強 19:55
tdd最擅長的是新功能開發(fā)
穿越時空的貓 19:55
這個可行。但高手就不能談全棧,要達(dá)到能做京東,阿里這些架構(gòu)的水平,一輩子不見得能達(dá)到,還哪有時間去鉆研別滴。
james 19:55
個人對全棧的要求就是團隊有問題,任何人都能頂上去。實際上一個公司不需要那么多專才
張克強 20:01
tdd的工作量其實是在前面,1是環(huán)境的搭建,要搭建非常快速的環(huán)境,這就要求原有結(jié)構(gòu)能分得出來。前面的架構(gòu)不能太爛
張克強 20:01
有些組織在這第一步上就是難于跨過
張克強 20:03
2是人員的培訓(xùn),無論是自學(xué)還是外請老師或者教練,都是工作量
張克強 20:05
tdd跑起來之后,工作效率如果沒有提升,那么這個tdd就是不能算成功跑起來了
總結(jié)
以上是生活随笔為你收集整理的说说TDD的好处和坏处-对话的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 需求评审五个维度框架分析及其带来的启示-
- 下一篇: 试论敏捷开发方法的共同特征