0916~0919_開學季語言展

Kent Beck的測試驅動開發:案例導向的逐步解決之道

TEST-DRIVEN DEVELOPMENT: BY EXAMPLE
  • 9 504
    560

活動訊息

想找書的時候,特別想偷看網友的書櫃... 原來大家都在看這本 ↓↓↓

用閱讀開啟視野,讓書成為照亮你人生的光
【金石堂選書】本月推薦您這些好書👉 快來看看

內容簡介

先求有,再求好,後求美
Kent Beck的測試驅動開發,帶領你快速突破軟體開發的重重難關!
讓你不再糾結、不再徬徨、不再浪費寶貴的時間!

譯者特別得到作者Kent Beck的授權,
將範例變更的歷程,放到GitHub上公開呈現每一個步驟的演進,
使讀者能夠搭配書中解說以理解TDD開發軟體的精髓!


「簡潔且執行正確的程式碼(clean code that works)」,這似乎是許多程式開發難題所存在的矛盾。而測試驅動開發(Test-Driven Development,TDD)則以矛盾、違反直覺的方式來解決這樣的矛盾問題:在你開始撰寫產品程式碼之前,先寫程式測試它。

這是什麼創新的想法嗎?完全不是。自從有電腦以來,程式開發人員就已經會在撰寫之前,先確認其輸入與輸出的結果。TDD只是採用這個古老的想法,並將它與現代程式語言和開發環境相互結合,端出一道滋味美妙的佳餚以滿足你對「簡潔且執行正確的程式碼」的渴望。

開發人員每天都在面對複雜的開發難題,然而最佳解決方案不可能隨時都準備好來派上用場。但屢見不鮮的是,這樣艱辛的專案往往面臨巨大的壓力,並隨之而來產生大量且糟糕的程式碼。為了獲得征服這樣看似艱鉅任務所需要力量與勇氣,開發人員應該了解一下TDD,這是一系列經過驗證可行的技術,能用來幫助開發人員同時設計出簡單好懂的程式,以及讓我們充滿信心的測試程式。

透過自動測試來驅動開發產品程式碼,然後消除程式中存在的重複,可使任何開發人員在面對無論多複雜的需求,都能寫出可靠、無錯誤的程式碼。除此之外,TDD的過程還能鼓勵開發人員更快速地學習、更清楚地溝通,並且從過程中尋求有建設性的反饋。

你將從本書學會:
•要解決複雜的任務,先從簡單開始,然後逐步發展到處理更複雜的情況。
•在開始寫產品程式碼之前,先寫自動化測試程式。
•藉由每次的重構步驟,一次引入一個設計的決定,形成演進式的設計。
•能替那些複雜的邏輯(包含反射跟例外)撰寫對應的測試。
•使用一些模式來決定該寫哪些測試。
•使用xUnit來撰寫測試,xUnit是許多開發人員所使用的測試工具中的核心架構。

這本書透過2個以TDD方式開發的專案範例來貫穿全場,藉此來解說開發人員能用來輕鬆且顯著提高工作品質的技術。這些範例遵循TDD與重構的一些模式。透過敏捷方法與快速開發策略能帶來的價值,TDD一定能激勵讀者去擁抱這些強大但還未被充分發揮巨大價值的技術。

作者Kent Beck是軟體業界中最具有創意且廣受好評的領導者之一。他熱愛採用模式、極限程式設計與測試驅動開發,目前隷屬於Three Rivers學院。他是一位超級銷暢作家,作品有《Extreme Programming Explained》(Addison-Wesley, 2000)以及《Planning Extreme Programming》(與 Martin Fowler合著, Addison-Wesley, 2001)並為《Refactoring》(Martin Fowler, Addison-Wesley, 1999)一書之貢獻者。

本書範例檔:(本範例檔以GitHub方式呈現已透過原作者授權)
tdd.best/book/tdd-by-example

好評推薦

想知道該如何對複雜的企業級需求化繁為簡嗎?如何能專注且輕鬆、不浪費每一分力氣地堆砌出最剛好的設計?該如何可靠穩定地建構出高易用性的API?如何隨心所欲地控制開發推進的步伐大小?如何透過持續的反饋進行實驗與學習,進而持續改善產品品質?如何將需求、驗收、測試、開發、設計各環節一以貫之,無多餘的一絲浪費?這些問題的答案,以及現代敏捷開發的基礎與核心,都在 Extreme Programming與 TDD 祖師爺 Kent Beck 這本經典代表鉅作中。-連任九屆微軟最有價值專家 陳仕傑(91)

作者

Kent Beck

Kent Beck不斷挑戰軟體工程的教條,並持續推廣模式、測試驅動開發以及極限程式設計等理念。目前隸屬於Three Rivers學院以及Agitar軟體公司,他同時也是眾多Addison-Wesley書籍的作者。

譯者簡介

陳仕傑(91)

連任九屆微軟最有價值專家(2010~2018)

著作:《ASP.NET MVC 5:網站開發美學》(12刷)、《ASP.NET MVC4 網站開發美學》
譯作:《敏捷開發實踐》、《單元測試的藝術 第二版》
審校:《進入IT產業必讀的200個.NET面試決勝題》
講師:各大技術研討會、知名企業內訓與公開培訓講師、知名部落客

目錄

獻詞
前言
致謝

譯者序

Part I 貨幣範例

Chapter 01 多幣別貨幣
Chapter 02 退化的物件
Chapter 03 眾生平等
Chapter 04 私有性
Chapter 05 法郎:那我呢
Chapter 06 一切平等,續集
Chapter 07 蘋果與橘子
Chapter 08 製造物件
Chapter 09 我們所在的Times
Chapter 10 有趣的Times 方法
Chapter 11 萬惡的根源
Chapter 12 終於來到加法了
Chapter 13 動工
Chapter 14 換匯
Chapter 15 混合幣別
Chapter 16 最後的工作:抽象
Chapter 17 貨幣範例的回顧
➔下一步該做什麼
➔隱喻
➔JUnit的使用
➔程式碼分析度量
➔過程
➔測試品質
➔最後一次回顧

Part II xUnit 範例

Chapter 18 開始xUnit 的第一步
Chapter 19 用餐前先擺餐桌
Chapter 20 事後清理
Chapter 21 計數
Chapter 22 處理失敗
Chapter 23 如何組成一組測試
Chapter 24 xUnit 回顧

Part III TDD 模式

Chapter 25 測試驅動開發模式
➔測試(名詞)
➔獨立的測試(Isolated Test)
➔測試清單(Test List)
➔測試先行(Test First)
➔驗證先行(Assert First)
➔測試資料(Test Data)
➔因果關係清晰的資料(Evident Data)

Chapter 26 紅燈模式
➔一次一步測試(One Step Test)
➔啟動測試(Starter Test)
➔說明測試(Explanation Test)
➔學習測試(Learning Test)
➔其他用途的測試(Another Test)
➔回歸測試(Regression Test)
➔休息一下(Take a Break)
➔重頭來過(Do Over)
➔便宜的桌子,舒適的椅子

Chapter 27 測試模式
➔子測試(Child Test)
➔模擬物件(Mock Object)
➔自分流(Self Shunt)
➔Log字串
➔模擬例外情況的假物件(Crash Test Dummy)
➔壞掉的測試(Broken Test)
➔提交時保持乾淨(Clean Check-in)

Chapter 28 綠燈模式
➔先作假,直到它變成真的(Fake It, Till You Make It)
➔三角定位法(Triangulate)
➔明確實作(Obvious Implementation)
➔從一到多(One to Many)

Chapter 29 xUnit 模式
➔驗證(Assertion)
➔固定裝置(Fixture)
➔外部固定裝置(External Fixture)
➔測試方法(Test Method)
➔例外測試(Exception Test)
➔全部測試(All Tests)

Chapter 30 設計模式
➔命令(Command)
➔數值物件(Value Object)
➔空物件(Null Object)
➔範本方法(Template Method)
➔插入式物件(Pluggable Object)
➔插入式選擇器(Pluggable Selector)
➔工廠方法(Factory Method)
➔冒名頂替(Imposter)
➔遞迴組合(Composite)
➔收集參數(Collecting Parameter)
➔單例模式(Singleton)

Chapter 31 重構
➔調和差異(Reconcile Differences)
➔隔離變化(Isolate Change)
➔資料遷移(Migrate Data)
➔擷取方法(Extract Method)
➔行內語句方法(Inline Method)
➔擷取介面(Extract Interface)
➔移動方法(Move Method)
➔方法物件(Method Object)
➔新增參數(Add Parameter)
➔把方法中的參數轉變成建構式中的參數

Chapter 32 精通 TDD
➔步伐應該多大?
➔哪些可以不用測試?
➔怎麼知道自己的測試沒有疏漏呢?
➔TDD 如何促進框架的形成?
➔你需要獲得多少反饋?
➔何時應該刪除測試?
➔程式語言與 IDE 如何影響 TDD 呢?
➔你能用 TDD 來開發大型系統嗎?
➔能使用應用程式等級的測試來驅動開發嗎?
➔如何想在產品開發中途開始引入 TDD 呢?
➔TDD 是給哪些人使用的?
➔TDD 對初始條件敏感嗎?
➔TDD 與模式的關係?
➔TDD 為什麼有效?
➔TDD 這個術語有什麼含義?
➔TDD 與極限程式設計實踐的關聯?
➔Darach 的挑戰

Appendix A 影響圖
➔反饋(Feedback)
➔系統控制
Appendix B 費氏數列

 

後記

配送方式

  • 台灣
    • 國內宅配:本島、離島
    • 到店取貨:
      金石堂門市 不限金額免運費
      7-11便利商店 ok便利商店 萊爾富便利商店 全家便利商店
  • 海外
    • 國際快遞:全球
    • 港澳店取:
      ok便利商店 順豐 7-11便利商店

詳細資料

詳細資料

    • 語言
    • 中文繁體
    • 裝訂
    • 紙本平裝
    • ISBN
    • 9789864345618
    • 分級
    • 普通級
    • 頁數
    • 264
    • 商品規格
    • 23*18.5
    • 出版地
    • 台灣
    • 適讀年齡
    • 全齡適讀
    • 注音
    • 級別

商品評價

訂購/退換貨須知

加入金石堂 LINE 官方帳號『完成綁定』,隨時掌握出貨動態:

加入金石堂LINE官方帳號『完成綁定』,隨時掌握出貨動態
金石堂LINE官方帳號綁定教學

提醒您!!
金石堂及銀行均不會請您操作ATM! 如接獲電話要求您前往ATM提款機,請不要聽從指示,以免受騙上當!

退換貨須知:

**提醒您,鑑賞期不等於試用期,退回商品須為全新狀態**

  • 依據「消費者保護法」第19條及行政院消費者保護處公告之「通訊交易解除權合理例外情事適用準則」,以下商品購買後,除商品本身有瑕疵外,將不提供7天的猶豫期:
    1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮食品)
    2. 依消費者要求所為之客製化給付。(客製化商品)
    3. 報紙、期刊或雜誌。(含MOOK、外文雜誌)
    4. 經消費者拆封之影音商品或電腦軟體。
    5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書、電子雜誌、下載版軟體、虛擬商品…等)
    6. 已拆封之個人衛生用品。(如:內衣褲、刮鬍刀、除毛刀…等)
  • 若非上列種類商品,均享有到貨7天的猶豫期(含例假日)。
  • 辦理退換貨時,商品(組合商品恕無法接受單獨退貨)必須是您收到商品時的原始狀態(包含商品本體、配件、贈品、保證書、所有附隨資料文件及原廠內外包裝…等),請勿直接使用原廠包裝寄送,或於原廠包裝上黏貼紙張或書寫文字。
  • 退回商品若無法回復原狀,將請您負擔回復原狀所需費用,嚴重時將影響您的退貨權益。
※ 網友掛保證,絕不踩雷書單如下 ↓↓↓
預計 2025/09/30 出貨 購買後進貨 
金石堂門市 全家便利商店 ok便利商店 萊爾富便利商店 7-11便利商店
World wide
活動ing