在TDD訓(xùn)練營中,我會提到TDD這三個字符的三層解讀:
- Task-Driven Development
- Test-Driven Development
- Test-Driven Design
專門賦予了Task一個專屬的意義。Task對應(yīng)的一個動作就是Tasking,Tasking的產(chǎn)出是一個任務(wù)列表,上面記載了一系列的Task。
Kent Beck在提出TDD的時候,并沒有顯示地強(qiáng)調(diào)Task-Driven,但實(shí)際上在他寫的《測試驅(qū)動開發(fā)》一書中,他也是按照一個任務(wù)列表來指導(dǎo)TDD的,所以他在實(shí)施TDD前,也是有Tasking的過程。
在實(shí)際項(xiàng)目中,很多人覺得TDD很難,一個很重要的原因是他沒有做Tasking,沒有對復(fù)雜的問題進(jìn)行分解,腦海里裝著大量的信息,從而不知道第一個測試從哪里開始,亦或者寫著寫著就不知道自己寫到哪了,整個節(jié)奏是胡亂的,這樣下來實(shí)施TDD是很有挑戰(zhàn)的。
Tasking能夠通過對問題的分析和拆解,很大程度降低我們的認(rèn)知負(fù)擔(dān),將我們的注意力聚焦在一個個更小的Task,復(fù)雜的問題拆小之后,做TDD的難度會降低。
一個TDD的踐行者,他一定會樂意去做這個事情,也會堅(jiān)持這么做。一個初學(xué)TDD的人,他不做Tasking這個事情,他可能沒法順利實(shí)施TDD。所以,強(qiáng)烈建議你將Tasking作為TDD的第一步,目的是讓TDD更順利。但Tasking又可以是一個獨(dú)立的方法,即便你不做TDD,你也可以對需求做Tasking,對技術(shù)方案做Tasking,這體現(xiàn)的是你對一件事物的理解和分析過程,這種分析能力越強(qiáng),你就越容易去解決一些復(fù)雜的問題。