ref : RoR之父批TDD已死,你認同嗎? 戰火很是熱鬧,我們這時候跳進來討論,其實似乎有些任性。 因為最近幾年我發現,如果當一件事情變成信仰的時候,其實就沒什麽討論的空間了,政治是、社會議題是、很不幸的,技術也是。 不過最近五年,我們持續聽到很多 XXX is dead, 例如 Silveright, Flash, ASP.NET WebForms, MVC, 還有現在的TDD。 我並不太在乎某一種技術是否已經死亡,其實基本上 is dead 的這種標題都只是比較誇大的說法,旨在凸顯一種立場或是看法。真正 is dead 與否,是由市場決定的。不然,怎麼會出現微軟要XP死,XP死也不肯死的狀況? ref1 , ref2 資本主義讓市場決定一切,所以不要說XP了,到現在我都還有朋友用 delphi 和 Foxpro寫系統,賣的還不錯咧。 所以回過頭來說這個 is dead 議題,前面說過, is dead 其實只是一種立場或看法的宣示,但為何有這種看法呢? 我不想討論細節,但我猜想台灣的技術人員一定有人這麼想: David(不是我,是RoR的David Heinemeier Hansson)在講什麽? 也太沒概念了吧??? 什麽? TDD is dead ,我才剛準備開始unit test和導入automatic test耶... 呼,好在TDD要死了,不然先寫test這種事情,誰做得出來? TDD? 什麽鬼啊??? .... 我猜一定有各種不同的想法,而就如同我先前說的,在這個多元化、資訊爆炸的時代,不管你的想法是什麽,你一定可以在網上找到支持你論點的證據,正反兩方(喔,不,是三方或多方)都可以有一派支持者,因為這就是一個多元的時代。 但如果你看David Heinemeier Hansson的 文章 ,你會發現他之所以反對TDD,是因為有太多人喊得太大聲了,大聲到好像不用TDD就是個罪惡,或是一種該被歧視的遜咖。他認為太多技術激進者用過於武斷與絕對的態度,以近乎沒有風度的方式來 『推廣』 一種技術。 但大家忘了,資訊科技出現才幾十年,軟體開發技術、軟體工程和開發流程的發展,也不過才由弱冠走向而立,在這個變動的領域裡,其實還沒有哪一件事情long live到可以被公認為真理的。 從結構化程式設計到物件導