Припущення полягало в тому, що Бреду потрібно створити систему виставлення рахунків підписки, яка знімає періодичні рахунки, а також оновлює записи клієнтів - використовуючи C # та xUnit.net (тестові рамки Бреда, які він створив разом з Джимом Ньюкірк). Для багатьох це звучить просто. Для тих, хто реалізував таке, - це що завгодно, але.
Те, що мені дуже сподобалося в цьому епізоді, це те, що я натиснув Бреда достатньо, щоб зняти "демонстраційний шпон" - я дав йому криву кулю приблизно 30 хвилин, де я сказав "О так ... чи я згадав, що ми також робимо X ? » - і йому довелося підлаштовуватися.
Коли у вас безлад тестів, які передбачають одне, то вам доведеться перейти на інше - це біль у попі. Але Бред впорався з цим напрочуд добре - скориставшись можливістю просунути більше структур у процесі свого тестування, потім один за одним "переходив" свої старі тести на новий підхід.
Ми працювали цілу годину в одному файлі коду - і я ніколи не бачив, щоб хтось робив це. Звичайно, я створив клас там, всередині коду, - але дивлячись, як Бред крутить клас за класом, потім перейменовує, потім видаляє, а потім повністю реструктурує його тести ... це було дуже, дуже цікаво.
Вони завжди кажуть, що TDD - це "процес дизайну" - але я ніколи не бачив, щоб він використовувався по-справжньому "дизайн-у" - як художник може кидати колір на кольорі на полотні, поки це не виглядає / відчуває себе правильно. І саме так почувалося спостерігати за ним.
Близько 15 хвилин Бред згадує, що "я залишаю клас у тестовому файлі, поки він не буде готовий до оприлюднення" - це означає, що у нього достатньо тестів, щоб обґрунтувати свої дизайнерські рішення. Концепція, про яку я ніколи не замислювався раніше - щось на зразок використання тестового файлу як трохи «лона».
Він "відчув" свій шлях через створення системи виставлення рахунків - весь час розмовляючи з самим собою і створюючи щось досить цікаве і досить прокляте, близьке до того, з чим ми закінчилися після майже 3-х років життя.