雜談- 關於設計:TDD 邪教論。 https://zh-tw.coderbridge.com/series/e29c4863cca940e2b464ab4db1952342/posts/350c187654cc4cbfac9d4184b96bceea. ... <看更多>
「tdd邪教」的推薦目錄:
- 關於tdd邪教 在 [討論] 怎樣算是一個合格的junior cpp programme - 看板Soft_Job 的評價
- 關於tdd邪教 在 關於設計:TDD 邪教論。... - HappyCoder 自學程式設計學院 的評價
- 關於tdd邪教 在 疑難雜症萬事通- tdd是什麼的推薦與評價,GITHUB 的評價
- 關於tdd邪教 在 [討論] 怎樣算是一個合格的junior cpp programme- 看板Soft_Job 的評價
- 關於tdd邪教 在 Nelson Liu - YouTube 的評價
- 關於tdd邪教 在 weekly/issue-23.md at main · wmyskxz/weekly - GitHub 的評價
tdd邪教 在 [討論] 怎樣算是一個合格的junior cpp programme- 看板Soft_Job 的推薦與評價
引述《HZYSoft (PCMan)》之銘言: : 補充一下,TDD 是還沒有開始寫任何 ... 你釐清spec 以及設計好介面的方法,但實在有點極端,被不少人視為邪教XD. ... <看更多>
tdd邪教 在 Nelson Liu - YouTube 的推薦與評價
0414 0746 TDD-6180. •. 12 views ... Nelson Liu. •. 鼎王貝貝邪教儀式. 0:44 · 兩個人的旅行:轉桌子. 0:27 · View full playlist. Show more. Subscriptions. ... <看更多>
tdd邪教 在 weekly/issue-23.md at main · wmyskxz/weekly - GitHub 的推薦與評價
14)测试很重要,但TDD (测试驱动的开发)几乎变成了一个邪教。 15) 政府单位很轻松,但并不像人们说的那样好。对于职业生涯早期到中期的工程师,12 万美元的年薪+ ... ... <看更多>
tdd邪教 在 [討論] 怎樣算是一個合格的junior cpp programme - 看板Soft_Job 的推薦與評價
針對關於 TDD 的討論另外回一篇好了
覺得用推文太長了 XD
: 推 stupidlove0: 朝聖!重要的真的是unit test 08/23 18:47
: → HZYSoft: 回樓上 TDD 問題,TDD 不只要測試,還要先寫測試才寫code 08/23 21:33
: → HZYSoft: 很多人無法習慣這種順序,是否一定要 TDD 這有爭議 08/23 21:34
補充一下,TDD 是還沒有開始寫任何的 code 之前,就先針對
程式寫好之後 "預期應該要有的行為" 先寫 test cases
接著,先跑一次測試親眼看著他 fail
因為還沒寫任何 code,所以測試絕對會 fail,
如果沒寫 code 卻 pass 那表示你的 test case 根本沒有測到。
接著才開始寫 code,重複跑測試直到確認 pass 為止,就是完成了。
不同於先寫 code 再測試,TDD 是顛倒,先測試再寫 code,所以才叫 test driven
如果程式被報 bug,也是先寫一個會 fail 的 test case,確認可以重現 bug
接著才開始改 code 修正,直到測試 pass 為止,就表示修好了。
這是一個觀念很特別的流派,他們的主張都是有道理的,就只是比較違反直覺不好實現。
如果你無法先寫出測試,那表示你還沒弄清楚要實作什麼行為,
或是你原先構思的 API 介面難以使用,以至於你寫不出 test case
這是強迫你釐清 spec 以及設計好介面的方法,但實在有點極端,被不少人視為邪教 XD
: 推 TeaEEE: TDD最大的阻力來自你的老闆 08/24 11:40
Testing 相關的東西常常是這樣,因為一開始看不到立竿見影的成果,
花掉的資源,也沒有立刻轉成給客戶的價值,跟下水道工程一樣重要但看不見。
: 推 wulouise: TDD在需求不明確的時候寫會很痛苦,SPEC改testcase全改 08/24 12:43
: → wulouise: 但只有一個test, 還是可以加快開發的iteration, test編 08/24 12:46
: → wulouise: 譯執行時間通 08/24 12:46
: → wulouise: 通常比跑production快很多 08/24 12:46
這個事情我覺得不是 TDD 的鍋,需求不明確本身就很痛苦,TDD 只是讓你提早面對它
需求不明確或是改來改去,你連 code 該怎麼寫,寫出來該有什麼行為都不知道
自然是無法寫出 test case 的。但反過來說如果狀況是如此,你寫出的 code 會對嗎?
錯是錯在沒定義清楚程式行為,不是 TDD 的錯。
TDD 只是一面鏡子,讓你提早發現問題,事實上這是好事。
表面上測試寫得很艱難拖慢進度,實際上是反映團隊溝通不良,和需求不清的問題
我們應該解決問題,而不是解決發現問題的人(跳過測試不做)
如果放棄做測試來節省時間,做出問題一堆的產品,這些時間後面也是要加倍還...
但也有情況例外,就是做 MVP 的時候。還來不及做測試,產品就被取消了,就免還債 XD
: → foreverk: TDD比較可怕的是工程師還沒掌握domain,寫出不合理的te 08/24 14:04
: → foreverk: st case,而且自己不知道 08/24 14:04
這或許不是 TDD 的鍋,domain 掌握不足,設計出來的 API 多半也會是有問題的,
TDD 並沒有讓事情更糟,只是強迫問題更早浮現罷了。
說了半天整篇都在幫 TDD 護航,但我自己大多是沒在用 TDD (汗顏...)
主要原因還是真的很難習慣,而且經驗比較不足,有時候 API 設計也是 try & error
雖然整個軟體巨觀該有什麼行為已經訂出來了,但程式會拆成很多小模組
每個模組該有哪些行為,完全端看你怎麼拆,而很多時候就是這點難以決定,
需要稍微實驗不同的作法,在這個階段強迫要先寫 test 還真有點強人所難。
但如果是定義很明確的 API,例如 web 後端的 RESTful API,介面都已經訂好了
這時候遵循 TDD 先寫 test case 完全是可行的,有興趣的朋友不妨一試!
--
Sent from PCMan on PCMan's PC
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.249.189.4 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1661350664.A.083.html
※ 編輯: HZYSoft (111.249.189.4 臺灣), 08/24/2022 22:22:04
... <看更多>