小帆 17:20
誰來科普下TDD的好處和壞處是啥?我們市場VP聽說了TDD以後情有獨鍾,但是大致看了一些好像很難推廣?
菌菌 17:21
好處是大大的,壞處是成本很高
羅耀秋 17:22
你自己開發寫代碼 你願意這樣幹不
小帆 17:23
@JuneC 好處具體是啥?
福瑞德孟 17:24
對於一錘子買賣的項目來說,如果沒有自動化的工具,那成本一定是大於收益的;對於產品來說,一定是小投入,大收益
菌菌 17:28
據說是在源頭髮現問題
菌菌 17:28
測試更貼近需求等等
韓炳濤 17:42
如果是想通過TDD把不靠譜的工程師變成靠譜的,可能成本更高
james 18:45
實際上我們在兩個團隊裏實踐敏捷,15個人裏培養了5個不錯的全棧。然後3個跳了。。。培養成本不高,留人的成本會比較高[吐]
james 18:57
tdd的實踐,我們刻意想做,但是沒做成。結果有一次重構,只要求一個故事至少一個用例覆蓋。不知不覺中,團隊將單元測試架構不斷優化,結果寫一個用例不到5分鐘。這時有同事先易後難,先寫測試例,tdd的思維莫名其妙的產生了
james 18:58
後來回顧,測試架構足夠簡單,團隊纔有意願去實踐tdd,從而帶來更多主動性去優化測試架構
james 19:01
後來嘗試在成熟的架構上實踐tdd,結果測試架構沒有中間的演進優化過程。結果一個用例從一開始就很難寫,團隊就沒人願意寫,除非你將測試例設定爲交付標準
james 19:04
而且補測試例的情況居多,因爲測試例的推導比正常程序還困難。補充一下,我們會寫設計文檔,先進行過推導,所以直接寫程序會比較容易
張克強 19:32
@james 是的,tdd應當能快速提升技能,留人要加錢啊
張克強 19:39
tdd的好處主要有:
1,編出來的程序是自帶測試的,可靠性好,缺陷少
2,能大大減少debug的需要,尤其減少單步調試,從這裏能節約時間
3,功能的實現有點像 數學裏的歸納法, 直接計算 n的情況,很難,但是先計算1的情況,再計算2,再計算從n-1到n,然後就解出來了
張克強 19:40
對於第三點,這是非常美妙的感覺,效率提升非常明顯,而且帶測試通過的。
張克強 19:41
tdd與需求的關聯不是特別直接。 atdd纔是直連需求
穿越時空的貓 19:42
說效率提升有點過了。質量提升是肯定的。工作量擺那兒呢。
張克強 19:44
對全棧高手而言,效率提升是必然的。
張克強 19:47
就算是單純的質量提升,也會帶來效率提升。因爲缺陷少就意味着,來回調試少。
穿越時空的貓 19:48
全棧高手往往是平庸的代名詞,人的精力是有限的。真正的全棧敲手一個公司找不出一兩個來,幹活不能只靠這一兩個人。術業有專攻,全才往往是庸才。
張克強 19:51
tdd而言,主要要求程序員會自動化測試,不是需要太全的全棧
張克強 19:54
也不需要從tdd來調試性能,也不需要從tdd來調整架構。我的看法。
張克強 19:55
tdd最擅長的是新功能開發
穿越時空的貓 19:55
這個可行。但高手就不能談全棧,要達到能做京東,阿里這些架構的水平,一輩子不見得能達到,還哪有時間去鑽研別滴。
james 19:55
個人對全棧的要求就是團隊有問題,任何人都能頂上去。實際上一個公司不需要那麼多專才
張克強 20:01
tdd的工作量其實是在前面,1是環境的搭建,要搭建非常快速的環境,這就要求原有結構能分得出來。前面的架構不能太爛
張克強 20:01
有些組織在這第一步上就是難於跨過
張克強 20:03
2是人員的培訓,無論是自學還是外請老師或者教練,都是工作量
張克強 20:05
tdd跑起來之後,工作效率如果沒有提升,那麼這個tdd就是不能算成功跑起來了