程序員的職業素養 讀書筆記 - 第5章 測試驅動開發
此事已有定論
TDD絕不僅僅是一種用於縮短編碼周期的簡單技巧。
每個開發人員都要適應和掌握TDD。
TDD的三項法則
1、在編好失敗單元測試之前,不要編寫任何產品代碼。
2、只要有一個單兇測試失敗了,就不要再寫測試代碼;無法通過編譯也是一種失敗情況。
3、產品代碼恰好能夠讓當前失敗的單元測試成功通過即可,不要多寫。
TDD的優勢
確定性:任何時刻,代碼有任何修改,都必須運行手頭有的全部測試。
缺陷註入率:無需更多判斷,單憑測試全部通過,便敢冒可能的風險發布代碼。TDD能夠顯著降低缺陷。
勇氣:擁有一套值得依賴的測試,便可完全打消對修改代碼的全部恐懼。
文檔:單元測試即是文檔。它們描述了系統設計的最底層設計細節。
設計:測試先行的需要,會迫使去考慮什麽是好的設計。
專業人士的選擇:它是一項能夠提升代碼確定性、給程序員鼓勵、降低代碼缺陷率、優化文檔和設計的原則。
TDD的局限
即使做到了測試先行,仍有可能寫出糟糕的代碼。因為寫出的測試代碼可能就很糟糕。
某些場合不合適TDD,這種情況很少,但確實存在。
程序員的職業素養 讀書筆記 - 第5章 測試驅動開發
相關推薦
程序員的職業素養 讀書筆記 - 第5章 測試驅動開發
定性 失敗 測試 通過 修改 細節 擁有 驅動 存在 此事已有定論 TDD絕不僅僅是一種用於縮短編碼周期的簡單技巧。 每個開發人員都要適應和掌握TDD。 TDD的三項法則 1、在編好失敗單元測試之前,不要編寫任何產品代碼。 2、只要有一個單兇測試失敗了,就不要再寫
程序員的職業素養 讀書筆記 - 第8章 測試策略
單元測試 一起 graph tro 直接 開發人員 統架構 char cif QA應該找不到任何錯誤 QA也是團隊的一部分 QA和開發人員應該緊密協作,攜手保障系統的質量。 QA在團隊中要扮演的便是需要規約定義者(specifier)和特性描述者(ch
程式設計師的職業素養 讀書筆記 - 第3章 說“是”
承諾用語 口頭上說。心裡認真。付諸行動。做出承諾,包含三個步驟 1、口頭上說自己將會去做。 2、心裡認真對待做出的承諾。 3、真正付諸執行。 識別“缺乏承諾”的徵兆 在承諾做某
程式設計師的職業素養 讀書筆記 - 第6章 練習
程式設計柔道場 卡塔:程式設計卡塔是一整套敲擊鍵盤和滑鼠的動作,用來模擬程式設計問題的解決過程。 瓦薩:兩個人的卡塔。一個人負責攻,另一個人負責守。 自由練習:很像由兩個參與者解決問題的瓦薩,也可以有多人蔘與。 自身經驗的拓展 職業程式通常會受到一種限制,即所解決問題的各類比較單一。老闆通常只強調一
程式設計師的職業素養 讀書筆記 - 第7章 驗收測試
需求的溝通 開發方與業務方之間最常見的溝通是關於需求的。業務方描述他們認為自己需要的東西,程式設計師按照自己理解的業務方表達的需求來開發。 在現實裡,關於需求的溝通是極其困難的,其中會出現各種問題。 過早精細化 做業務的人和寫程式的人都容易陷入一個陷阱,即過早進行精細化。
程式設計師的職業素養 讀書筆記 - 第13章 團隊與專案
只是簡單混合嗎 有凝聚力的團隊 形成團隊是需要時間的。團隊成員需要首先建立關係。 有凝聚力的團隊通常有大約12名成員。7名程式設計師、2名測試人員、2名分析師和1名專案經理。 1)發酵期
程式設計師的職業素養 讀書筆記 - 第14章 輔導、學徒期與技藝
失敗的學位教育 符合要求的畢業生有個共同點,進入大學之前就已經自學程式設計,並且在大學裡依然保持自學。 學校中所學的內容和在工作中發現的實際需要,這兩者之間通常會有巨大的差異。 輔導 1、精心編寫的幫忙手冊 2、觀察他人工作 3、非常規輔導 4、艱難的錘鍊 學徒期 軟體學徒期
核心技術讀書筆記----第5章 繼承(一)
特殊 編譯器 父類構造函數 ack 父類 指定 引用 tsa 一句話 第5章 繼承(一) 1、super:當希望子類調用超類的方法時,使用super.方法名super不是一個對象的引用,不能將super賦值給另一個對象變量,它只是一個指示編譯器調用超類方法的特殊關鍵字。 p
程式碼整潔之道 讀書筆記 - 第5章 格式
垂直格式 1、推薦單檔案200行程式碼左右,最長不超過500行。 2、每一組思路完整的程式碼,中間用空白行區隔。 3、緊密相關的程式碼應該互相靠近。 4、本地變數和實體變數應該在類的頂部宣告。 5、概念相關的程式碼應該放在一起,相關性越強,距離越短。 6、自上向下展示函式呼叫依賴順序。被呼叫的函式
《Oracle PL/SQL 完全自學手冊》讀書筆記 第5章 資料的增、刪、改-- 5.3.4 TRUNCATE與DELETE的區別
TRUNCATE的作用是清空一個表格,在刪除資料方面,它與DELETE有如下一些區別: 在資料處理功能上,TRUNCATE是清空一個表的所有內容,它相當於DELETE FROM TABLE_NAME DELETE是DML操作,而TRUNCATE是DDL操作。因此,用DELE
《Java併發程式設計實戰》讀書筆記-第5章 基礎構建模組
第五章,基礎構建模組 1,同步容器類。 Vector、HashTable此類的容器是同步容器。但也有一些問題,例如,一個執行緒在使用Vector的size()方法進行迴圈每一個元素的時候,而另一個執行緒對Vector的元素進行刪除時,可能會發生ArrayIn
Anderson《空氣動力學基礎》5th讀書筆記 第5記——推導二維機翼的空氣動力學系數
機翼的受力分析圖 我們知道,空氣對一個物體產生的升力和阻力以及力矩源於作用在整個物體上的壓力分佈和剪下力分佈,所以我們分析上圖可知(取單位展長的
Atitit soa之道 艾提拉著作 SOA概念、技術與設計讀書筆記 第3章 理解面向服務 10 第4章 理解面向服務架構 39 第5章 理解服務與微服務的層次 74 第6章 Web服務及微服務的
Atitit soa之道 艾提拉著作 SOA概念、技術與設計讀書筆記 第3章 理解面向服務 10 第4章 理解面向服務架構 39 第5章 理解服務與微服務的層次 74 第6章 Web服務及微服務的分析與建模 94 第7章 REST服務及微服務的
映射篇:request-String-Object-Map之間相互轉化(程序員的成長之路---第5篇)
exception types common validate runt eight methods 數據庫 英文 為什麽寫這一篇 問題一:jdbc連接數據庫返回的對象是ResultSet,如何把ResultSet對象中的值轉換為我們自建的各種實體類? 我估計,80%的程序
APUE讀書筆記-第17章-高階程序間通訊
17.1 引言 *兩種高階IPC:基於STREAMS的管道(STREAMS-based pipe)以及UNIX域套接字(UNIX domain socket)可以在程序間傳送開啟檔案描述符。服務程序可以使它們的開啟檔案描述符與指定的名字相關聯,客戶程序可以使用這些名字與服務
《從0到1》讀書筆記第2章"像1999 年那樣狂歡"第1記:小結及詞匯解析
content 高新 1.8 匯率 穩定 盈利模式 fun csdn 外匯 小結 本章的目的應該是通過90年代末的互聯網泡沫的背景,成因。影響,以及教訓來教誡人們,在全部人都瘋狂的拋身於洪流熱潮之中時,我們要冷靜的思考辨識出那些不切實際的大眾觀點,
《從0到1》讀書筆記第4章“競爭意識”第1記:霧失樓臺,月迷津渡
spl 讓我 tails ext ont down 激情 都是 lines 一直以來我們接受的教育都是教導我們要做個出類拔萃的好學生,小學如此,中學這般,大學也是如是。而評論是否是個好學生的標準在我國有“三好學生”做衡量。而隨著社會就業競爭形勢的日益
java並發編程的藝術,讀書筆記第三章
java並發編程的藝術final域的內存語義寫final域的重排規則:禁止把final域的寫重排序到構造方法之外,主要包括倆個個方面1)JMM禁止編譯器把final域的寫重排序到構造方法之外2)編譯器會在final域寫之後,構造函數return之前插入一個storestore屏障,這個屏障禁止處理器把fina
Core Java Volume I 讀書筆記--第4章 對象與類
volume nod sina x86 userinfo -- tar .com ndt 20r拿3角51諼3http://weibo.com/p/1005056264972659 SI境嗇7U侍凡17院http://shequ.docin.com/dpyy387 宦3
《鳥哥的Linux私房菜》讀書筆記--第0章 計算機概論part1
x86架構 傳輸 png 頻率 最好 概論 而在 不同 倍頻 一個下午看了不少硬件層面的知識,看得太多太快容易忘記。於是在博客上寫下讀書筆記。 有關硬件 個人計算機架構&接口設備 主板芯片組為“南北橋”的統稱,南北橋用於控制