Интересная статья на InfoQ. Великие и ужасные гуру Spolsky и Bob Martin (Uncle Bob) спорят о необходимости писать тесты. Разумеется, великий мастер Uncle Bob настаивает на написании тестов. А Spolsky уверяет, что не везде они так уж необходимы. Он указывает на затраты времени на написание и на необходимость тратить время на исправление тестов при небольших изменениях кода (хрупкость тестов). Uncle Bob утверждает, что все это потому, что некоторые (некоторые) просто не умеют писать OO-код. По мнению Spolsky, SOLID принципы ООП не являются agile и вообще, выглядят ужасно бюрократичными и придумал их тот, кто и кода-то мало написал. Bob не стерпел. Холодная стариковская кровь вскипела. Он указал, что пишет, писал и будет писать много кода, и большая часть его Test First.Как водится, старики быстро перешли на личности. Uncle Bob посетовал, что всякая тварь тут будет рассуждать что такое Agile в присутствии людей, которые участвовали в создании Agile-манифеста.
В общем, там много еще стаффа, почитайте :-)
А я вот мучился мучился и вспомнил, что это все мне напоминает:
Ученик спросил великого мастера программирования Летящего Пера: "Что превращает тест в юнит тест?"
Великий мастер программирования ответил: "Если он обращается к базе, значит он не юнит тест. Если он обращается к сети, значит он не юнит тест. Если он обращается к файловой системе, значит он не юнит тест. Если он не может выполняться одновременно с другими тестами, значит он не юнит тест. Если ты должен делать что-то с окружением, чтобы выполнить тест, значит он не юнит тест."
Другой мастер программист присоединился и начал возражать.
"Извините, что я спросил", — сказал ученик.
Позже ночью он получил записку от величайшего мастера программиста. Записка гласила: "Ответ великого мастера Летящего Пера прекрасный ориентир. Следуй ему, и в большинстве случаев не пожалеешь. Но не стоит застревать на догме. Пиши тест, который должен быть написан."
Ученик спал хорошо. Мастера все еще продолжали спорить глубокой ночью.
Путь Тестивуса

0 коммент.:
Отправить комментарий