tdd和重構練功房打卡總共兩周時間,從第一關的fizzbuzz到十三關的英文單詞遊戲,每一關都有其訓練指標和意義,一路打卡下來,體驗和感悟都很深,作為一名程式設計師,這種訓練場景還是非常有必要的,從開發的流程和編碼的思路上都有很好的指導意義,下面是我對tdd和重構的一些理解。
tdd是測試驅動開發(test-driven development)的英文簡稱,是敏捷開發中的一項核心實踐和技術,也是一種設計方**。tdd的原理是在開發功能**之前,先編寫單元測試用例**,測試**確定需要編寫什麼產品**。tdd雖是敏捷方法的核心實踐,但不只適用於xp(extreme programming),同樣可以適用於其他開發方法和過程。測試驅動開發,是一種最佳實踐,它有很多好處。實際工作中,會有很多打斷我們開發思路的事情,一如開會、線上問題排查、需求討論、新郵件、上洗手間等。頻繁地切換思路,勢必會影響我們對開發的狀態投入,尤其長時間的打斷會嚴重讓我們忘卻之前在大腦臨時記憶體區域的一些重要待辦事項。而「紅-綠-重構」下的測試驅動開發,能夠幫助我們保持對最終達成目標的關注。失敗的測試幫助了我們持久化記住了之前那一歷史時刻大部分的資訊和場景概況。此外,在具備自我驗證能力下的單元測試套件下,更是為我們搭建了乙個360度的安全網,乙個可以任意大膽進行各種嘗試的沙箱環境,並能最大程度上讓核心業務邏輯得以保證,從而保證了最終的交付質量。其中,快速反饋大大縮短了等待的週期,以便我可以快速發現問題、定位問題、修復問題、再回歸測試驗證。而通過層層驗證的核心業務,更是讓我們增大了自身對**質量的信心。曾經多次,**上線後,測試同學懷疑我的**有問題,但經過了嚴格單元沒說的我跟他們說,不會的,這塊我已經用等價類進行了各種測試,你說的這種情況我已驗收過,沒問題。果然確實沒問題。
重構(refactoring)就是通過調整程式**改善軟體的質量、效能,使其程式的設計模式和架構更趨合理,提高軟體的擴充套件性和維護性。重構的價值在於持續偏糾和改進軟體設計 ,使**更被其他人所理解 ,幫助發現隱藏的**缺陷 ,從長遠來看,有助於提高程式設計效率,增加專案進度,進度是質量的敵人,質量是進度的朋友,而重構又離不開設計模式。
設計模式(design pattern)是一套被反覆使用、多數人知曉的、經過分類的、**設計經驗的總結。使用設計模式的目的:為了**可重用性、讓**更容易被他人理解、保證**可靠性。 設計模式使**編寫真正工程化;設計模式是軟體工程的基石脈絡,如同大廈的結構一樣。設計模式可以說是一種更好組織**的語言模式,即便不使用它,也能完成功能的開發。但使用它,能夠更好得到浮現式的設計,從微架構慢慢演變到乙個更大、更完善、更永遠的架構。對於設計模式,最終目標是完成滿足使用者的特定功能,使用設計模式是為了更好組織**外在形式,以便更好表達概念的完整性。
tdd的過程就是乙個**重構的過程,從完成單元測試到優化重構業務**,是乙個循序漸進的過程,這樣使開發人員付出最小的代價寫出高質量的同事滿足使用者需求的**,讓寫**不再是搬磚,而是在做一項工程建設。
TDD 測試 實現 重構
測試驅動開發 我們要的不僅僅是 質量 測試驅動開發是極限程式設計裡很重要的乙個實踐,很多其他實踐都是以這個實踐為基礎的。測試驅動開發核心就是所有的實現都是測試 逼 出來的,所有的實現 都是為了讓測試通過而編寫的,如果測試都通過了我們就可以拒絕再新增新的功能了或新的 了,要讓我寫更多的 好,新增乙個測...
關於重構的幾點感悟
如果問乙個程式設計師 為什麼會變爛?他可能會找出無數種理由 1 本來就爛,我只是加了一點東西 2 時間壓得太緊,根本沒有時間把 優化,功能實現出來就不錯了 3 系統已經上線了,不敢隨便去改以前的 不出問題還好,改出問題了誰負責 但是,這都是從外部找原因推卸責任,程式設計師應該從自身尋找原因。其實,變...
學習TDD 1 TDD的步驟和好處
早就聽說tdd的大名,一直沒有機會使用。這次mrpc框架開發的時候正好用用看。在此之前,先學習一下tdd。本篇大部分結論來自 加入乙個新的測試 執行下新加的測試,看到它失敗 因為你還沒寫功能 對開發 做很小的修改,目的就是讓新加的測試通過 注意這裡的目的 執行所有的測試 test case 然後看到...