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