程式設計師練功房14天程式設計訓練總結

2021-09-24 09:19:08 字數 1730 閱讀 6722

最近持續幾周,一直打卡參加學習熊節老師的《程式設計師練功房》的tdd學習14關,有些感悟和總結在這裡記錄下:

在剛開始接觸的時候,感覺先寫測試再寫**真的很浪費時間,在第一關學習打卡的時候就比較排斥,在想tdd到底好在哪?帶著疑問,通過上網查資料和看書,結合老師的tdd方**,經過幾次打卡練習,慢慢發現以往開發的不足,以前開發都是先寫**後測試很容易使前期的思考不全面,從而寫出了無法完成全部任務的**。平時遇到這個情況,無非就是繼續返工。可是反反覆覆的編寫、除錯和失敗也浪費了大量的時間,歸根結底就是因為沒有想好要去做什麼、做到什麼程度、怎樣去做。

一、所謂tdd(test driver development),即測試驅動開發,顧名思義就是以測試**驅動程式開發,先寫測試用例,然後用**實現測試用例。

二、測試驅動開發流程如下:

三、如何分析拆解任務(像機器一樣思考):

分析問題步驟:

分解問題

找到子問題之間的關聯(通過輸入輸出關聯起來)

找到問題的邊界,明確假設與結果

畫圖的規則:

圖基本元素由方塊和帶箭頭的線組成

乙個方塊只代表乙個函式或乙個**塊,通常是函式,方塊中可以寫字,可以表達函式是屬於哪個類或哪個例項等資訊。

指向方塊的線代表該函式的輸入,背離方塊的線代表函式的輸出。

資料流動的時間軸遵守先從左到右,再從上到下的順序。

每一對輸入輸出(輸入在上,輸出在下)加乙個方塊,表達了一次函式呼叫。

四、測試用例編寫:

測試用例需要有given、when、then,既已有條件、執行什麼和最後期望的結果,在選取測試用例時既要全面又不能過多顯得冗餘。測試類名、方法名命名規範名詞意思表達清楚(比如: should_return_correct_args_parser),可選取邊界值及乙個起始值或中間值,這樣基本可以覆蓋整個測試情況。

五、方**:

先寫測試,再寫**,每行**是否都是由測試驅動出來,反思浪費時間點卡在**,是否有改進辦法,另外,重複練習,結合學習資料,形成乙個好的開發習慣

六、tdd**展示:

核心**:

測試用例展示:

最後,感謝熊老師和他的練功房,讓我能反思自己**,從中提公升和加強自己的開發能力。

程式設計師練功房心得

程式設計師練功房,讓我們強身健體的地方。經過了兩周的tdd訓練學習,徹底顛覆了之前的開發思維模式。看了熊節老師的重構 改善既有 的設計對 的的不斷重構,換角度的思維和學習,不斷優化 結構。一.tdd測試驅動開發,未動測試先行,從測試的角度去理解執行開發。二.傳統開發測試流程與tdd開發流程比較 之前...

程式設計師程式設計藝術總結

第一章 左旋轉字串 第二章 字串是否包含及匹配 查詢 轉換 拷貝問題 第三章 尋找最小的k個數 第三章續 top k演算法問題的實現 第三章再續 快速選擇select演算法的深入分析與實現 第三章三續 求陣列中給定下標區間內的第k小 大 元素 第四章 現場編寫類似strstr strcpy strp...

程式設計師高效程式設計的14點建議

下面是開發大牛總結的高效程式設計的14點經驗。不管你是程式設計菜鳥還是資深程式設計師,或許都能從中得到啟發。計畫 所謂plan,其實就是對於程式設計中的 設計 階段,當然,這裡的plan並不像設計那樣重量級。它要求我們程式設計師在正式程式設計前最少要考慮一下下面的問題 下面是你因為有 plan 而得...