iT邦幫忙

DAY 30
9

30天快速上手TDD系列 第 31

[30天快速上手TDD]目錄與附錄

針對整個系列,做個分類與整理。

補充一些筆者覺得不錯的參考資源,供讀者可以更深入的了解相關概念與技術。
這次鐵人賽,希望可以用30篇文章,來讓讀者了解TDD完整流程中,每一個環節的重要性,以及它們彼此之間如何環環相扣,發揮綜效,以降低每個環節與每個角色之間轉換的effort。

這一系列30篇文章,筆者有精心規劃過順序,所以強烈建議讀者,可以的話請按照順序來閱讀。文中也有許多交互參照的reference,按照順序閱讀與練習,會更能將自己沉浸在TDD過程的節奏中,而且每一篇文章中,所需要花費的練習時間相當簡短,每一個概念精簡而重要,就跟物件設計的封裝原則一樣,「最少但是又缺一不可」。

一步一步去了解文中所提倡的精神,一步一步跟著文中範例去練習,當碰到了瓶頸,我想恭喜您,就跟TDD中碰到紅燈一樣讓人開心,跨過去了,你就得到它了!按照筆者安排的難易度,每一篇文章只要有寫過程式碼的朋友,應該就能跟的上這樣的步調才是。

接下來是30篇文章的分類,希望對大家在閱讀或survey整個TDD,可以有所幫助。

@TDD 概念大綱

  1. [Day 1]TDD guidance

@測試相關

  1. [Day 2]Unit Testing 簡介
  2. [Day 3]動手寫Unit Test
  3. [Day 4]單元測試:是否需針對非 public method 進行測試?
  4. [Day 5]如何隔離相依性 - 基本的可測試性
  5. [Day 6]隔絕相依性的方式與特性
  6. [Day 7]Unit Test - Stub, Mock, Fake簡介
  7. [Day 8]Integration Testing & Web UI Testing

@重構九式

  1. [Day 9]Refactoring legacy code簡介
  2. [Day 10]Refactoring 起手式 - 建立測試
  3. [Day 11]Refactoring - 讓程式碼說話
  4. [Day 12]Refactoring - 職責分離
  5. [Day 13]Refactoring - 告訴我,你要什麼
  6. [Day 14]Refactoring - 驗貨
  7. [Day 15]Refactoring - 食神歸位
  8. [Day 16]Refactoring - 介面導向
  9. [Day 17]Refactoring - Strategy Pattern
  10. [Day 18]Refactoring - Factory Pattern
  11. [Day 19]Refactoring - The End is the Beginning

@ATDD

  1. [Day 20]ATDD - User Requirement
  2. [Day 21]ATDD - Acceptance Testing
  3. [Day 22]ATDD - ATDD的循環

@BDD & TDD

  1. [Day 23]BDD - Introduction
  2. [Day 24]BDD - SpecFlow Introduction
  3. [Day 25]BDD - TDD from BDD

@整套的TDD流程

  1. [Day 26]User Story/ATDD/BDD/TDD - 總結

@TDD實戰演練

  1. [Day 27]TDD實戰練習-1
  2. [Day 28]TDD實戰練習-2
  3. [Day 29]TDD實戰練習-3
  4. [Day 30]TDD實戰練習-END
    實戰範例的Sample code 下載位置

@Reference
書籍:

  1. The Art of Unit Testing: With Examples in .Net
    簡體中文:.NET單元測試的藝術

  2. Test Driven: TDD and Acceptance TDD for Java Developers
    簡體中文:测试驱动开发的艺术

  3. Refactoring: Improving the Design of Existing Code
    繁體中文:重構:改善既有程式的設計 (二版)
    簡體中文:重构:改善既有代码的设计

  4. Refactoring to Patterns
    繁體中文:重構-向範式前進
    簡體中文:重構與模式

  5. Agile Principles, Patterns, and Practices in C#
    簡體中文:敏捷软件开发:原则、模式与实践

  6. Growing Object-Oriented Software, Guided by Tests
    簡體中文:測試驅動的面向對象軟體開發

  7. Emergent Design: The Evolutionary Nature of Professional Software Development
    簡體中文:浮现式设计:专业软件开发的演进本质

  8. Brownfield Application Development in .Net
    繁體中文:軟體構築美學:當專案團隊遇上失控程式,最真實的解決方案

  9. Succeeding with Agile: Software Development Using Scrum
    簡體中文:Scrum敏捷软件开发

  10. Scrum and XP from the Trenches (Enterprise Software Development)
    簡體中文:硝烟中的Scrum和XP:我们如何实施Scrum

筆者註:大家可能會有個疑問,怎麼書裡面沒列到TDD的經典本:Test Driven Development: By Example(by Kent Beck),嗯,原因很簡單,我沒有看完,只有看了最前面的幾章...當時拿來當切入TDD的第一本入門書,讓我有點卡彈,可能是我英文不夠好、可能沒那麼剛好敲到我欠缺的部份,但可以確定的是,Kent Beck在TDD的書,肯定值得閱讀 :)

@結論
最後想提醒一下讀朋友們,user story/ATDD/BDD/TDD/Refactoring,這些概念都不會因為語言、平台、工具而有所不同。

在各種不同的環境下,只要掌握這些概念,有過幾次完整套用的實務經驗,要體會其中各個環節自然不會是太大的問題。當然,如果是要導入到團隊中的話,那麼眉角會更多,先讓自己去了解、練習,並試著應用到實務上,您鐵定會碰到不少實務上的問題,這些問題,才是真正的「價值」。

把這些東西內化之後,自然您就不會感受到什麼成本、時程的問題,因為在開發時,這一切就跟呼吸一般自然。掌握你的節奏、團隊的節奏,這樣子開發過程,會是一個很美妙的世界的。


上一篇
[Day 30]TDD實戰練習-END
系列文
30天快速上手TDD31
0
SunAllen
iT邦高手 1 級 ‧ 2012-11-07 12:56:41

恭喜貓大鐵人鍊成灑花灑花衝刺

就是91 iT邦研究生 4 級‧ 2012-11-07 13:02:49 檢舉

感謝。

一步一步慢慢走,總算走了30天了 XD

0
pajace2001
iT邦研究生 1 級 ‧ 2012-11-07 14:58:54

好多書~好多寶藏阿~~~~
讚讚讚

就是91 iT邦研究生 4 級‧ 2012-11-07 16:25:45 檢舉

比較不好意思的是,我大部分都是看簡體書,除非繁體有出。

英文還沒法子看到這麼順...加上太貴了 哭

hatelove提到:
比較不好意思的是,我大部分都是看簡體書,除非繁體有出。

抗議

就是91 iT邦研究生 4 級‧ 2012-11-07 17:46:11 檢舉

所以有機會的話,會幫忙翻譯點好書,或是跟前輩一起撰寫書籍 ^^

0
ted99tw
iT邦高手 1 級 ‧ 2012-11-07 16:36:59

hatelove提到:
當碰到了瓶頸,我想恭喜您,就跟TDD中碰到紅燈一樣讓人開心

說得好哇!!

讚讚讚

0
就是91
iT邦研究生 4 級 ‧ 2012-11-13 18:17:48

剛剛才發現,之前沒有把實戰演練的範例sample code放上來。

剛剛補上範例的下載位置了,請各位讀者輕鬆享用 :)

我要留言

立即登入留言