TDD 介紹

6,611 views

Published on

Published in: Technology, Business
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total views
6,611
On SlideShare
0
From Embeds
0
Number of Embeds
4,609
Actions
Shares
0
Downloads
32
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

TDD 介紹

  1. 1. Willie <willie@issdu.com.tw>
  2. 2. 本投影片使用 高橋流簡報法
  3. 3. 測試先行 Test Driven Development 開發流程
  4. 4. 1. 寫測試 執行此測試一定會失敗
  5. 5. 2. 寫程式 目標為通過前一個失敗測試
  6. 6. 3. 重構 調整架構或移除程式碼 重構後需通過所有測試
  7. 7. <範例> 程式範例抄自 http://blog.extracheese.org/2009/11/how_i_started_tdd.html
  8. 8. 費式數列 0 1 1 2 3 5 8 13 21 34 55…
  9. 9. 1. 寫測試 2. 寫程式 3. 重構
  10. 10. 1. 寫測試 2. 寫程式 3. 重構
  11. 11. 1. 寫測試 2. 寫程式 3. 重構
  12. 12. PASS 目前沒有重構的必要
  13. 13. 1. 寫測試 2. 寫程式 3. 重構
  14. 14. 1. 寫測試 2. 寫程式 3. 重構
  15. 15. 1. 寫測試 2. 寫程式 3. 重構
  16. 16. PASS 目前沒有重構的必要
  17. 17. 1. 寫測試 2. 寫程式 3. 重構
  18. 18. 1. 寫測試 2. 寫程式 3. 重構
  19. 19. 1. 寫測試 2. 寫程式 3. 重構
  20. 20. PASS 目前沒有重構的必要
  21. 21. 1. 寫測試 2. 寫程式 3. 重構
  22. 22. 1. 寫測試 2. 寫程式 3. 重構
  23. 23. 1. 寫測試 2. 寫程式 3. 重構
  24. 24. 思考 無限的 if 判斷不是辦法…
  25. 25. 重構
  26. 26. 1. 寫測試 2. 寫程式 3. 重構
  27. 27. 1. 寫測試 2. 寫程式 3. 重構
  28. 28. 測試需到 何種程度 寫到你有信心程式已經正確無誤
  29. 29. </範例>
  30. 30. <TDD好處>
  31. 31. (1) 使用者角度 設計 API
  32. 32. (2) 低耦合 高聚力
  33. 33. (3) 維護性 容易交接 / 說明文件
  34. 34. (4) Over Design
  35. 35. (5) 鼓勵重構 重構前必須先有充足測試
  36. 36. </TDD好處>
  37. 37. <TDD限制>
  38. 38. (1) Concurrency
  39. 39. (2) Security
  40. 40. </TDD限制>
  41. 41. <兩個問題>
  42. 42. (1) 什麼是 好架構
  43. 43. 套用 設計模式
  44. 44. 類別/函式 越多越好
  45. 45. 答案
  46. 46. Testable Code
  47. 47. Testable Code
  48. 48. Testable Code
  49. 49. (2) 如何學會 設計好架構
  50. 50. 多看 程式碼
  51. 51. 資深帶 資淺
  52. 52. 搭檔編程 導入困難 (衝擊公司文化)
  53. 53. 聘請 顧問架購師
  54. 54. 人類不是習慣 完美的動物 (出自人月神話一書)
  55. 55. if ‘架構師’ == ‘人類’: print(‘架構師也會犯錯’) (只是架構師犯錯機率較低)
  56. 56. 答案
  57. 57. 採用 TDD 讓自己成為自己的導師
  58. 58. </兩個問題>
  59. 59. TDD 很簡單 因為不需要新技術
  60. 60. TDD 很困難 因為要改變開發習慣
  61. 61. 它是我們的敵人
  62. 62. 推薦書單
  63. 63. 多謝聆聽

×