TDD
Пример разработки «Крестиков‑ноликов» по TDD
Введение 🔗
TDD — практика разработки программ, в которой программист вначале пишет тесты для новой функциональности, затем — реализацию этой функциональности, а после — проводит рефакторинг.
Основной посыл TDD — в разбиении больших задач на маленькие. Такой метод позволяет писать более структурированный, надёжный и читаемый код.
Стандартный цикл разработки состоит из трёх этапов и занимает 10–15 минут.

Первый этап — красная зона. На нём пишется тест, который точно упадёт с ожидаемой причиной. Если причина падения теста не совпадает с ожидаемой, переходить к реализации функциональности рано.
Второй этап — зелёная зона. На нём реализуется функция, которая проходит этот тест. Цикл короткий, поэтому реализация должна быть максимально простой.
Третий этап — синяя зона. На этом этапе программист рефакторит код тестов и реализации. Проводить рефакторинг в синей зоне безопасно, потому что вся функциональность, которую рефакторинг затрагивает, уже покрыта тестами. Если что‑то по пути сломается, программист об этом тут же узнает.
В этой статье мы напишем игру «Крестики‑нолики» на JS, используя практику TDD.
Разработку мы поделим на две части:
- вначале опишем логику игры и правила;
- затем — представление и работу с DOM.
Это объёмная статья. Возможно, вам захочется сразу перейти к результатам.