Сегодня поделимся впечатлением о книге Кента Бэка, создателя этой методологии.
Книга посвящена одному из принципов XP — “Test Drive Development” или разработка через тестирование. Основная мысль автора заключается в острой необходимости применения тестирования для создания безошибочно работающего кода.
Книга состоит из трех больших частей, и первые две посвящены демонстрации использования принципа Test Drive Development или TDD.
Первая часть — самая наглядная, это создание кусочка приложения с валютной арифметикой. В качестве языка программирования выступает Java, а инструментом тестирования является JUnit. Автор создает класс доллар, пробует его складывать, умножать, делить, переводить в другие валюты и на этом примере можно увидеть как применяются принципы создания самотестирующегося кода. Прежде чем написать часть программы, создаётся небольшой тест, далее добавляется ровно столько кода, сколько необходимо для прохождения этого теста, далее — процедура повторяется. При необходимости применяется рефакторинг для удаления повторяющегося кода.
Вторая часть — теоретическая и не такая наглядная, в ней больше рассуждений, чем кодирования. Автор разрабатывает инфраструктуру для автоматического тестирования на языке Python. Глава посвящена принципам, которые должны лежать в основе запуска, управления и завершения теста.
Третья часть — самая интересная и насыщенная. Буквально в первом параграфе нас встречает “зловещая спираль” тестирования, которую он приписывает всем программистам — чем больший стресс испытывает программист, тем меньше он тестирует разрабатываемый код, а чем меньше тестируется разрабатываемый код, тем больше программист допускает ошибок.
Одним из советов, который дает автор для выхода из зловещей спирали — это использование автоматического тестирования.
Последняя глава наполнена и юмором, и шаблонами, и советами. Тут автор объясняет очень многие вещи, которые применял в первой главе, приводит примеры из жизни, делится жизненными советами, делая упор на то, что тестирование и перепроверка кода — это всегда хорошо.
— в книге часто говорится о том, что разработчику нужен определенный опыт и знания, чтобы интуитивно чувствовать, когда стоит вносить изменения, какой тест нужно написать, и при прочтении таких фраз одолевают сомнения в собственных силах — достаточно ли у тебя этого опыта, чтобы интуиция подсказывала правильные вещи?
— хотелось бы видеть в книге критерии, по которым автор продумывает шаги для тестирования, чтобы исключить тест, который заранее работать не будет.
+много примеров, много паттернов, наглядное применение принципа построения кода;
+последняя часть представляет собой некий справочник, к которому можно обращаться при необходимости;
+удачная структура книги, сочетающая в себе и примеры, и советы, и справочную часть;
+есть шаблоны и примеры их использования;
+есть рассуждения и даже примеры из жизни, когда вы можете использовать шаблоны тестирования.
В целом, книга доступна для понимания даже для новичков разработке. Примеры кода не усложнены особенностями языка программирования, каждый шаг содержит подробные объяснения. Принципы создания кода, в основе которых лежит декомпозиция, тестирование и тщательное обдумывание последующих шагов, будут полезны всем, кто заинтересован в улучшении своих навыков в программировании и создании качественного кода.
#созданиепрограммногообеспечения