讓我來告訴你是什么讓我能夠寫出靈活度高,可讀性強,并且容易維護的代碼。這即不是一個新的框架,也不是一個新的強大的IDE,而是一個更好的東西,與技術無關,與你正在使用的編程工具也無關。這是一個被稱為測試驅動開發(Test Driven Development,簡稱TDD)的軟件開發過程。
這可能不是你第一次聽說TDD。這是一個現在很受歡迎的開發過程,不是因為每個人都在使用它,而是因為每個人對它都有一定的想法。今天我將和你一起分享我對它的一些觀點。
當我在和某些人探討TDD時,他們告訴我說“TDD就是先做測試”,我知道,他們弄錯了。如果你正在做的唯一一件事情只是編寫測試用例,那么你實際上并不是在做TDD。提前編寫測試用例雖然是是構成TDD過程的其中一部分,但它并不是TDD。請注意,我把TDD稱之為一個過程,因為它就是一個真正的軟件開發過程。
為什么需要有這么一個軟件開發的過程呢?類似的,醫生需要有一個做手術的過程,以確保能順利完成手術!雖然遵循這個過程并不能保證一直都表現良好,但是如果沒有這個過程,那你遲早會把工作搞砸。而這種單次失敗可能會對你的聲譽造成很大的影響。請記住,你應該始終保持良好的表現,而不是偶爾的表現偉大一次。
你可能會說“我已經有一個開發過程了,而且我每次開發軟件都是遵循的這個過程,而不是TDD”。那很好,雖然我是TDD的倡導者,但我并不是狂熱地相信TDD是編寫好軟件的唯一途徑。有很多開發人員即使不使用TDD,也可以始終如一地生產出高品質的軟件。他們有自己的開發過程。然而,我還沒有看到有一個過程能像TDD那樣產生這么好的結果。因此,我堅信每個軟件開發人員都可以從TDD中受益。如果你知道一個比TDD更棒的方案,請在此博客文章后面發表評論或給我發消息,我很樂意聽到它!
在開發高質量的軟件時,這三件事是開發者需要重復進行的:設計,測試和重構。你首先必須要對軟件做一些設計,以確定如何實現該軟件。然后做一些測試來驗證它是否按照設計的要求來運行。同時,你還必須重構一些代碼,以使其保持簡潔,并易于維護。
TDD的好處在于將這三件事情合并到只需要幾分鐘就能完成的小周期里。這實際上意味著你的工作由一個個的小的迭代組成,每次迭代結束后,都會產生一份干凈并且可測試的代碼。因此,當你使用TDD時,你的代碼不會長時間的保持丑陋,或者無法運行。下面,讓我們進一步地分析,為什么小周期中的設計、測試和重構會讓你受益匪淺?
設計軟件本身就是一個迭代的過程。不可能100%的設計都在軟件運行之前完成。為什么?因為有些信息要達到了某些開發關鍵點時才能夠發現。因此,在軟件開發過程中,只要獲得了一點信息,你都可以做一些小小的設計,這樣能使你更好地做出決定。
原文轉自:http://geek.csdn.net/news/detail/195645