концепції / test-driven-development
Test-driven development (TDD)
Канал відкрито анти-TDD-пуристський. Віктор любить тести, але не любить цикл red/green Кента Бека як інструмент проєктування: для виправлення багів він годиться, але під час проєктування звужує фокус до наступного assert замість форми API (3 речі, які роблять програміста кращим, Q&A №2). Його альтернатива — ескізування API-first: написати приклад коду використання, переписувати, доки не проявиться скелет, реалізувати — і писати тести після коду. Позицію він підкріплює джерелами: серія розмов "Is TDD Dead?" (Бек/Фаулер/DHH) і аргумент A Philosophy of Software Design про те, що TDD відводить увагу вбік (Q&A №2).
Його улюблена ілюстрація TDD-догми — карго-культ моків: люди вирішили, що TDD = юніт-тести = мокати все, хоча в тих самих розмовах "Is TDD Dead?" сам Кент Бек каже, що мокає якомога менше — «люди просто вирішили, що має бути так» (3 речі, які псують програміста). Власна лінія Віктора — класицистська: замість моків проєктувати під підмінювані (injectable) реалізації. Уся ця тема — його показовий приклад догматизму: віри в програмування замість його розуміння.
Розібрано у відео
- 3 речі, що псують програміста
догма «мокати все» проти того, що Бек каже насправді
- 3 речі, які роблять програміста кращим
любить тести, не любить цикл red/green; замість нього — API-first
- Відповідаю на питання №2
позиція повністю: серія "Is TDD Dead?", цитата з A Philosophy of Software Design, тести після коду, класицистські моки
Повʼязане
Автоматизоване тестування — він за тести, проти ритуалу Проєктування програмного забезпечення — метод API-first, на користь якого TDD відкинуто Глибоке вивчення фундаментальних речей — розуміти причини практик замість вірити в них A Philosophy of Software Design — авторитет, якого він цитує проти TDD-як-проєктування