易燃物匯聚 YouTube 有聲書與書評
TDD全視角:認知、實踐、工程化與AI融合 封面

TDD全視角:認知、實踐、工程化與AI融合

袁金松 劉煌 劉玉龍

146人在讀
11.2萬字總字數
¥53定價

內容簡介

本書由中興通訊資深專家執筆,融合多年的一線項目經驗,全面講解TDD的基礎理論、實踐操作、工程化推廣路徑與未來發展方向。內容覆蓋廣泛、體系完整,既是開發者個人成長的實用工具書,也是團隊與企業推進TDD落地的權威參考。 本書主要內容如下: 認知篇(第1~2章):詳細介紹TDD的歷史背景、核心原則和要點,以及本質,並且通過第一性原理探討 TDD 的真正價值和作用,幫助讀者建立全面的TDD認知。 實踐篇(第3~9章):圍繞TDD的實施流程和方法展開,從正確的操作步驟、用例拆分與Todolist設計,到黑盒/白盒測試、測試分層、測試數據管理及測試替身技術(如Fake和Mock),提供了豐富的實踐經驗和應對策略。同時,本篇以“DD 送貨”項目爲案例,展示了TDD在微服務架構下的實踐全景圖。 工程化篇(第10~11章):探討如何推動TDD在大型組織中的規模化落地,包括TDD規模化落地的價值、難點和方案,提出了一系列最佳實踐和成熟度評估方法,幫助企業實現TDD的長期穩定運作。 拓展篇(第12~13章):聚焦於大模型對軟件開發的深遠影響,分析大模型如何改變軟件工程範式,以及程序員如何擁抱AI技術。本篇還探討了大模型輔助TDD開發的“雙輪驅動”模式,並詳細介紹了相關的Prompt技巧、模板及AutoTDD工具的技術架構和實踐應用。

讀者書評

★★★★★

前面的知識掃盲,方法,概念還是推薦看,後面就感覺是在湊字數了。 《TDD全視角:認知、實踐、工程化與AI融合》 袁金松 劉煌 劉玉龍 32個筆記 Chapter 2 第2章 TDD的價值 ◆ 是有限的,只有通過團隊協作,才能實現高效、高質量的工作成果。 [插圖] 圖2-1 研發效能分析 TDD在研發效能的軟件工程能力和人員能力兩個方面都能發揮不小的作用,下面將詳細描述。 2.2 TDD提升軟件工程能力 2.2.1 TDD讓編程更專業 TDD是如何讓我們的編程過程更加專業的呢? 首先,TDD可以做到價值交付。因爲TDD強調測試先行,開發的起點是Todolist,而Todolist可以看作需求分析和方案設計之後的功能描述。一切開發活動都圍繞實現Todolist展開,確保了價值導向。 ◆ 意圖導向編程的一個顯著優勢是對用戶體驗和需求的重視。這種以客戶價值爲導向的方法,確保了軟件解決方案能夠更準確地符合用戶的實際使用場景和需求。TDD是一種實踐意圖導向編程的有效方法。它通過先編寫測試用例來定義應用程序所期望的行爲,再編寫代碼來通過這些測試。 ◆ [插圖] 圖2-2 缺陷修復的成本變化趨勢 因此,爲了獲得更合理的資源投入產出比,應該在需求階段和開發階段初期儘早地發現缺陷,從而減少修復成本和返工,這正是測試左移的價值所在。 測試左移之所以重要,是因爲我們要在缺陷引入的最初階段發現問題,將其“扼殺在搖籃裏”,而不是任由它像雪球一樣越滾越大。這裏需要注意,測試左移要求測試活動儘早介入,這不單是把測試人員進行左移。因此,團隊裏的每個成員都需要具備測試左移的思想,從一開始就繃緊質量這根弦,確保每個人的工件質量。 ◆ 測試左移要求測試活動儘早介入,這不單是把測試人員進行左移。因此,團隊裏的每個成員都需要具備測試左移的思想,從一開始就繃緊質量這根弦,確保每個人的工件質量。 ◆ 如果將這一思想延伸到ATDD(驗收測試驅動開發),則可以實現全流程的端到端測試驅動,確保從需求到實現的每個環節都受到測試的嚴格約束。ATDD與TDD的關係如圖2-3所示。 [插圖] 圖2-3 ATDD與TDD的關係 在軟件開發過程中,TDD與測試左移的關係如圖2-4所示。 [插圖] 圖2-4 TDD與測試左移的關係 爲了確保開發出符合用戶需求的高質量產品,從需求分析到測試驗收的每個環節都至關重要。 ◆ 在日常開發中,發現問題、定位問題、修復問題雖然不是最根本的複雜性工作,但確實佔據了開發者的大量時間,甚至可能消耗一半以上的有效工作時間。 ◆ ❑知識工作不被直觀看到:知識工作者的產出是知識,而非直接可見的工作成果。知識只有在被消費時纔有價值。例如,業務分析只有在被理解和應用時纔有意義 ◆ 。這可能源於對測試編寫技能的不自信或對時間成本的考量。由於對測試編寫不甚熟悉,不少程序員傾向於逃避這項工作。 ◆ 如果程序員在開發階段就編寫完善的測試,測試人員就能從重複的基礎測試中解放出來,專注於更高價值的測試任務,如探索性測試。 ◆ TDD通過提供一個共同的、基於測試的溝通框架,促進團隊成員間的協作,確保軟件開發過程中的每個人都緊密對齊於共同目標——交付滿足用戶需求且質量可靠的軟件產品。 ◆ 2026/09/21發表想法 其實有了大模型後,tdd反而很容易實踐,加入tdd的skill就行了。 原文:對於新員工而言,直接學習並使用TDD有助於提高研發效能,因爲他們從無到有地構建自己的開發習慣。而對於有經驗的老員工,他們已經形成了一套適合自己的高效開發模式,向TDD遷移可能會在短期內降低效能,具體效果取決於現有開發模式與TDD的契合程度。 ◆ 對於新員工而言,直接學習並使用TDD有助於提高研發效能,因爲他們從無到有地構建自己的開發習慣。而對於有經驗的老員工,他們已經形成了一套適合自己的高效開發模式,向TDD遷移可能會在短期內降低效能,具體效果取決於現有開發模式與TDD的契合程度。 ◆ 3.提升研發效能的路徑 儘管TDD是業界認可的開發方法,許多人從中受益,但也存在質疑。我們應避免同溫層效應和倖存者偏差,用辯證的眼光看待和實踐TDD。TDD的價值不僅在於其方法本身,還在於它能推動各種優秀技術實踐的落地,並通過實踐探索高效研發的方法。 提升研發效能的關鍵路徑包括: ①掌握TDD:深入學習並掌握TDD,避免淺嘗輒止。 [插圖] 圖2-9 TDD與研發效能的關係 ◆ ❑持續學習新技術,不斷提升能力。 ❑高度自動化和標準化。 ❑注重代碼的可讀性、可維護性和擴展性。 簡單來說,工程師文化體現爲對代碼、測試用例、方案設計等方面的交付質量和細節的高度重視。 2.TDD如何助力打造工程師文化 從長遠來看,TDD不僅是一種開發方法,還是培養工程師文化的有效手段。TDD與工程師文化的關係如圖2-10所示。 [插圖] 圖2-10 TDD與工程師文化的關係 TDD作爲一種具有槓桿作用的核心技術實踐,可以推動其他多種技術實踐的落地,如清潔代碼(Clean Code)、重構、簡單設計、結對編程、代碼評審、測試設計等。 ◆ 簡單來說,工程師文化體現爲對代碼、測試用例、方案設計等方面的交付質量和細節的高度重視 實踐篇 ◆ 結合項目實踐經驗,推進TDD時應遵循以下四條建議:①在編寫生產代碼之前,必須先編寫測試代碼(這裏的測試是指那些因缺少生產代碼而註定失敗的測試)。②僅編寫剛好能解決當前測試失敗問題的生產代碼,切勿過度開發或添加不必要的功能,以免引入新的、未被測試覆蓋的問題。③僅編寫剛好能解決當前測試失敗問題的生產代碼,避免額外實現。④當測試通過後,如發現代碼存在“壞味道”,應立即重構,並確保重構後測試仍然通過。 工程化篇 ◆ 2026/09/21發表想法 大模型出來後,這些都不是難點了。 原文:10.2.1 個人層面的實踐難點 ◆ 10.2.1 個人層面的實踐難點 拓展篇 ◆ 大模型工具的引入並非單純爲了減輕工作負擔,而是調整工作重點,使程序員能夠擺脫重複性任務,專注於更具創造性和戰略性的工作。 ◆ 儘管大模型在處理重複性高、機械性的任務方面表現出色,但它無法替代程序員的思考和決策能力。程序員仍需掌握“輔助駕駛的方向盤”,在利用大模型工具的同時,確保代碼質量和項目方向的正確性。大模型能夠幫助程序員聚焦於高價值任務,提升專業能力,但這一切的前提是程序員自身具備足夠強的專業素養和創新思維。 ◆ 在這場技術革命中,程序員需要不斷學習和適應,才能在新環境中茁壯成長。 ◆ 與大模型共生並不意味着完全依賴大模型,而是要找到人與大模型之間協同的平衡點 ◆ ❑提出問題:能夠準確地向大模型提問。❑解釋回答:能夠理解和解釋大模型的回答。❑指導生成:能夠指導大模型生成高質量的代碼。此外,掌握基礎的數據科學和機器學習概念,將有助於程序員更好地理解大模型的工作原理,並充分利用其能力來解決問題。 ◆ 因此,在學習新技術時,應把重點放在對原理的理解上。 Chapter 13 第13章 大模型輔助TDD開發 ◆ 隨着few-shot提示技術的引入,我們可以顯著提高結果的可複製性。通過向ChatGPT提供具體的示例,我們可以引導它按照我們提供的樣本進行思考,從而更容易獲得一致的結果。這種方法使得在特定情境下複用Prompt成爲可能,進一步提高了交流的效率和準確性 ◆ ①上下文(背景 ◆ ②角色定位(你是誰 ◆ ③任務描述(做什麼) ◆ 。④執行步驟(怎麼做) ◆ ⑤限制條件(不要做 ◆ ⑥輸出格式: ◆ Prompt=背景+你是誰+做什麼+怎麼做+不要做+輸出格式

★☆☆☆☆

開什麼玩笑。 TDD就因爲工程理解難,因此用結果反推的黑盒法。 AI正是解析工程,正好是正向推。 這文章就是搞笑的,基本邏輯都不懂。

書籍信息

作者袁金松 劉煌 劉玉龍
出版社機械工業出版社
出版時間2025-07-21
ISBN9787111784234
分類計算機-人工智能
格式EPUB
完結狀態連載中
章節數22