【課程主題涵蓋範圍】
依據實務需求完成代碼、加入單元測試、code review 、code smells 辨識且示範與練習重構、測試案例探索/分群/排序、邏輯樹拆分、TDD 循環與 baby step、迭代堆砌產品代碼增量
報名這裡去➟【201907 演化式設計:測試驅動開發與持續重構 報名表單】
【課程主題涵蓋範圍】
依據實務需求完成代碼、加入單元測試、code review 、code smells 辨識且示範與練習重構、測試案例探索/分群/排序、邏輯樹拆分、TDD 循環與 baby step、迭代堆砌產品代碼增量
報名這裡去➟【201907 演化式設計:測試驅動開發與持續重構 報名表單】
※ 課程正名,英文:【Evolutionary Development - TDD and Continuous Refactoring】,中文:【演化式設計:測試驅動開發與持續重構】
【課程主題涵蓋範圍】
依據實務需求完成代碼、加入單元測試、code review 、code smells 辨識且示範與練習重構、測試案例探索/分群/排序、邏輯樹拆分、TDD 循環與 baby step、迭代堆砌產品代碼增量
報名這裡去➟【201902 演化式設計:測試驅動開發與持續重構 報名表單】,已額滿,加入等待清單可以享有下次課程提前收到開課通知的權利
為啥開發人員都覺得 TDD 好,卻又覺得在實務上有些彆扭,也有很多說法把它講得有些不切實際、太理想化呢?
你以為它是測試,但其實在它的本質上,同時兼具了「Specification」與「Test」兩種維度的身份。
隨筆記錄下來想法,這個「測試驅動開發」的「測試」,可能跟你想得不一樣。
許多公司往往為了 KPI 需要數字,所以將測試覆蓋率訂了個 criteria 來「強暴」開發團隊,甚至要求團隊「一定」要用 TDD 來開發所有程式。
這一切都是不求甚解的為了潮、為了追求數字的迷思,本篇文章將補上我對於「測試覆蓋率」與「看待 TDD 的正確角度」的見解。
用 TDD 來練習完成 LeetCode 的第 2 題,題目描述如下。
用 TDD 來練習完成 leet code 的第 220 題,題目描述如下。
Given an array of integers, find out whether there are two distinct indices i and j in the array such that the absolute difference between nums[i] and nums[j] is at most t and the absolute difference between i and j is at most k.
Codewars 上的 kata: Next bigger number with the same digits
You have to create a function that takes a positive integer number and returns the next bigger number formed by the same digits:
f(12) == 21
f(513) == 531
f(2017) == 2071If no bigger number can be composed using those digits, return -1:
f(9) == -1
f(111) == -1
f(531) == -1
用 TDD 來練習完成 leet code 的第 219 題,題目描述如下。
Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the absolute difference between i and j is at most k.
學會 TDD?用 TDD?落實 TDD?到底什麼時候該用 TDD 呢?
TDD 其實是一種修煉的過程,讓你可以在每一次寫程式的過程,都逐步在累積功力,就像金庸的射雕英雄傳中,馬鈺教郭靖修煉內功的方式,無外乎就是一些呼吸、走路、睡覺的法子。
什麼是 legacy code? 沒有自動測試保護的就是 legacy code 。
-Michael Feathers, 《Working Effectively with Legacy Code》
講直白一點,legacy code 就是沒爹沒娘沒靠山,被人射後不理的產物。
誰都可能欺負它、弄壞它,簡直就是一直像死了般卻仍在線上活著的產品程式碼。
為什麼要透過 The Three Laws of TDD 來限制 TDD 的過程,這近乎於不合理的三條限制法則,能帶來什麼好處?
TDD 是一種限制的美學。
[懶人包]DHH: TDD is dead. Long live testing. 懶人包整理