- PVSM.RU - https://www.pvsm.ru -
Я почувствовал, что устои мироздания потрясены, когда сотни читательов начали яростно спорить по поводу заметки Роберта Мартина о стартапе-ловушке [1].
Хотите знать, как я обычно участвую в таких спорах?
— Так какие же тесты пишешь ты сам?
— Мнэ-э…
— Когда же ты пишешь тесты?
— Мнэ-э…
— Ты вообще тесты пишешь?
— Мнэ-э…
Окей, конечно, я пишу тесты, я просто не участвую в таких спорах. Времена, когда нас всех заставили принять таблетку TDD, провели черту между теми программистами, которые полюбили тесты всем сердцем, и теми, кто на самом деле не очень-то любит писать тесты. И ввязываться в спор между двумя этими лагерями — отличный повод потерять пару часов впустую, вместо того чтобы делать свою работу.
Но как раз сейчас у меня, кажется, есть эта парочка часов.
Классическое TDD, то самое, которое говорит, что тесты «не должны ничего знать» о реализации, о настоящем коде — умерло, поезд ушел, все кончено. Но несомненно, его недолгое присутствие произвело ожидаемый эффект — все задумались о коде, который уже написан и задумались о написании для него тестов, чтобы при изменении кода в будущем не возникало проблем.
Проблемы.
Это важно. Проблемы. Повторите еще раз — Проблемы. Если вам неприятно, давайте решать эти проблемы.
Прислушиваться к проблемам — единственный разумный путь при разработке ПО. Одна крайность — Роб Мартин — заведет вас в глубокие дебри. Другая — те, кто призывают не думать об опасностях вовсе — скорее всего приведет вас к провалу. Мысль, что тесты — это просто потеря времени, очень опасна, особенно если эта мысль пустит корни в вашем сознании. Но и идея об абсолютной важности TDD — не менее опасна.
Когда вы пишете по классическому ТДД, вы теряете большую часть денег вашего заказчика, но если вы не пишете тестов вообще, то вам придется потратить все это время еще раз — в будущем.
Классическое TDD — это отличный теоретический прием, с которым можно поиграться в свободное время или на выходных. Классическое TDD — отличный маркетинговый слоган, если вы — один из тренеров или TDD-коучей. Да, TDD — этот пункт, на который обязательно смотрят при приеме на работу, но TDD — это обычно не тот путь, которым идет отличное приложение, сделанное в срок.
Так какие же тесты ты всё-таки пишешь?
Итого
Есть два типа прагматиков, когда дело доходит до тестирования. Те, кто говорят о прагматизме, чтобы не делать нужные вещи, и я.
От переводчика: Rob Ashton — известный фриланс-разработчик из Европы, участвующий во многих open-source проектах.
Автор: Shaddix
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/razrabotka/28957
Ссылки в тексте:
[1] стартапе-ловушке: http://habrahabr.ru/post/171883/
[2] Источник: http://habrahabr.ru/post/172039/
Нажмите здесь для печати.