Re: [請益] 軟體測試出路?
解釋一下好了,很多人以為TDD就是要有測試,避免將來改動程式時發生錯誤,並且
能在錯誤發生的第一時間進行修正,將修正成本降到最低。這些都沒錯,也的確是
TDD相當重要的好處,但其實TDD最大的好處並非這個,而是他提供所謂"低藕合"的
code design一個檢驗的工具,讓developer可以時時知道自己的設計是否有太過高
藕合的狀況發生。
TDD要求每個元件都能單獨被測試,要達到這個的前提就是每個元件彼此之間的藕合
度必須要很低,一旦不是如此,光是要把一個元件建出來,就要拉一長串其他元件
進來,測試就相當困難。所以使用TDD,一旦有高藕合的code出現,馬上developer
就會知道,並且可以馬上更改設計。很多人會覺得說我自己就可以寫出低藕合的code
,不需要輔助,但事實上人沒辦法完全在所有地方都寫出這樣的code,有工具幫忙
後整個會很不一樣。以前自以為很低藕合的code,戴上TDD的眼鏡才會發現問題百出。
只不過有些走火入魔的人,為了達到完全的低藕合,什麼東西都寫個interface,
又寫一堆不必要的class只為了讓每個class不要太大,導致整個架構龐大,可讀
性低落,所以只能說任何東西太超過都不好,有些元件特性就很難完全低藕合,
硬要去弄只會把架構弄得很亂。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.165.200.238
※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1399707713.A.431.html
※ 編輯: Wolfken (118.165.200.238), 05/10/2014 15:51:48
推
05/10 18:38, , 1F
05/10 18:38, 1F
→
05/10 19:43, , 2F
05/10 19:43, 2F
推
05/15 00:43, , 3F
05/15 00:43, 3F
討論串 (同標題文章)