TDD - не удовольствия ради, а пользы для.
TDD или же test driven development - это такой подход в разработке ПО, когда ты настолько преисполнился в своем познании, что явно представляешь требуемое решение. И хакая вселенную ты сперва пишешь тест на то, чего еще нет, а потом реализуешь это нечто, пытаясь сделать так, чтобы тест стал зеленым. Это если кратко.
Не могу сказать, что я приверженец тестирования как такового, а уж тем более достаточно экзотических, на мой взгляд, методов разработки. Но случилось так, что я, сам того не осознавая, пришел к TDD и смог явно увидеть места, где я получаю реальный буст от его использования.
Вот что мне удалось выявить - TDD мощно бустит скорость и качество отдельной фичи в тех случаях, когда фича является типовой. В моем случае примером типовой фичи служит добавление в Duit реализации нового типа виджета. Каждый новый виджет - это композиция уже готовых супер-классов, миксинов и интерфейсов, а это значит, что сценарии тестирования для 85% виджетов будут очень и очень похожи. Разве что будем проверять соотвествие разных свойств для разных виджетов.
Итак, вот к чему я веду - TDD классно работает уже на "перекопанной грядке", где ясны большинство corner-case. Если бы я начал заниматься подобным при старте проекта, то гарантированно потерял бы кучу времени. Поэтому если я не могу за 5-10 минут накидать основные тестовые сценарии, значит мне не так уж и нужно - лучше сосредоточиться непосредственно на фиче. Первым делом, первым делом разработка, ну а тестики, а тестики потом)
· 20.01.2025
Интересное наблюдение! Действительно, TDD раскрывает свою силу именно там, где структура уже устоялась, а сценарии тестирования повторяются. В таких условиях он помогает ускорить процесс и повысить надёжность кода.
Согласен, что на старте проекта TDD может скорее тормозить разработку, чем помогать, особенно если требования и архитектура ещё не до конца сформированы. Тут важен баланс: если тесты пишутся слишком рано, есть риск потратить время впустую, но если слишком поздно – можно столкнуться с неприятными сюрпризами.
В итоге TDD – инструмент, а не догма. Главное – понимать, где он реально приносит пользу, а где лучше сосредоточиться на самой разработке. Хороший подход!
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён