Założeniem było, że Brad musiał stworzyć system rozliczeniowy subskrypcji, który będzie odpalał okresowe rozliczenia, a także aktualizował rekord klienta - używając C # i xUnit.net (środowisko testowe Brada stworzone przez Jima Newkirka). Dla wielu brzmi to prosto. Dla tych, którzy wdrożyli coś takiego - to nic innego.
Rzeczą, która naprawdę podobała mi się w tym odcinku, jest to, że pchnąłem Brada na tyle, aby usunąć „fornirę demo” - dałem mu krzywą około 30 minut w miejscu, w którym powiedziałem „O tak… czy wspominałem, że robimy również X ? - i musiał się dostosować.
Kiedy masz bałagan testów, które zakładają jedną rzecz, musisz przejść do innej - to jest ból w dupie. Ale Brad poradził sobie z tym niesamowicie dobrze - wykorzystując okazję, aby wprowadzić więcej struktur do swojego procesu testowania, a następnie jeden po drugim „przenosić” swoje stare testy na nowe podejście.
Pracowaliśmy całą godzinę w jednym pliku kodu - i nigdy wcześniej nie widziałem, żeby ktoś to robił. Jasne, stworzyłem klasę bezpośrednio w kodzie - ale patrzenie, jak Brad rozkręca klasę po klasie, potem zmienia nazwę, następnie usuwa, a następnie całkowicie przebudowuje swoje testy… to było bardzo, bardzo interesujące.
Zawsze mówią, że TDD jest „procesem projektowym” - ale nigdy nie widziałem, aby był używany w prawdziwie „projektowy sposób” - jak malarz może rzucać kolor po kolorze na płótno, dopóki nie będzie wyglądał / czuł się dobrze. I tak właśnie było go oglądać.
Około 15 minut w Bradzie wspomina, że „zostawiam klasę w pliku testowym, dopóki nie będzie gotowa do upublicznienia” - co oznacza, że ma wystarczająco dużo testów, aby uzasadnić swoje decyzje projektowe. Pomysł, o którym nigdy tak naprawdę nie myślałem - coś w rodzaju użycia pliku testowego jako „macicy”.
„Czuł” swoją drogę przez stworzenie systemu fakturowania - cały czas rozmawiał z samym sobą i tworzył coś raczej interesującego i cholernie zbliżonego do tego, z czym skończyliśmy po prawie 3 latach życia.