Найти тему

Обзор по книге Кента Бека "Экстремальное программирование"

Этот отзыв - субъективное мнение автора о прочитанной книге. Чтобы составить свое мнение мы рекомендуем самостоятельно ее прочитать.
Этот отзыв - субъективное мнение автора о прочитанной книге. Чтобы составить свое мнение мы рекомендуем самостоятельно ее прочитать.

Автор Александра Недомолкина vk.com/...921

Ошибки, риски и недостоверная оценка - всё это в разработке далеко не редкость. Поэтому существуют разные методологии, призванные помочь в прогнозировании и предотвращении возможных трудностей, которые могут возникнуть в ходе работы над программным обеспечением. Экстремальное программирование (XP) - одна из них.

Сегодня поделимся впечатлением о книге Кента Бэка, создателя этой методологии.

Книга посвящена одному из принципов XP - “Test Drive Development” или разработка через тестирование. Основная мысль автора заключается в острой необходимости применения тестирования для создания безошибочно работающего кода.

Книга состоит из трех больших частей, и первые две посвящены демонстрации использования принципа Test Drive Development или TDD.

Первая часть - самая наглядная, это создание кусочка приложения с валютной арифметикой. В качестве языка программирования выступает Java, а инструментом тестирования является JUnit. Автор создает класс доллар, пробует его складывать, умножать, делить, переводить в другие валюты и на этом примере можно увидеть как применяются принципы создания самотестирующегося кода. Прежде чем написать часть программы, создаётся небольшой тест, далее добавляется ровно столько кода, сколько необходимо для прохождения этого теста, далее - процедура повторяется. При необходимости применяется рефакторинг для удаления повторяющегося кода.

Вторая часть - теоретическая и не такая наглядная, в ней больше рассуждений, чем кодирования. Автор разрабатывает инфраструктуру для автоматического тестирования на языке Python. Глава посвящена принципам, которые должны лежать в основе запуска, управления и завершения теста.

Третья часть - самая интересная и насыщенная. Буквально в первом параграфе нас встречает “зловещая спираль” тестирования, которую он приписывает всем программистам - чем больший стресс испытывает программист, тем меньше он тестирует разрабатываемый код, а чем меньше тестируется разрабатываемый код, тем больше программист допускает ошибок.

Одним из советов, который дает автор для выхода из зловещей спирали - это использование автоматического тестирования.

Последняя глава наполнена и юмором, и шаблонами, и советами. Тут автор объясняет очень многие вещи, которые применял в первой главе, приводит примеры из жизни, делится жизненными советами, делая упор на то, что тестирование и перепроверка кода - это всегда хорошо.

Что не понравилось:

- в книге часто говорится о том, что разработчику нужен определенный опыт и знания, чтобы интуитивно чувствовать, когда стоит вносить изменения, какой тест нужно написать, и при прочтении таких фраз одолевают сомнения в собственных силах - достаточно ли у тебя этого опыта, чтобы интуиция подсказывала правильные вещи?

- хотелось бы видеть в книге критерии, по которым автор продумывает шаги для тестирования, чтобы исключить тест, который заранее работать не будет.

Что понравилось:

+много примеров, много паттернов, наглядное применение принципа построения кода;

+последняя часть представляет собой некий справочник, к которому можно обращаться при необходимости;

+удачная структура книги, сочетающая в себе и примеры, и советы, и справочную часть;

+есть шаблоны и примеры их использования;

+есть рассуждения и даже примеры из жизни, когда вы можете использовать шаблоны тестирования.

В целом, книга доступна для понимания даже для новичков разработке. Примеры кода не усложнены особенностями языка программирования, каждый шаг содержит подробные объяснения. Принципы создания кода, в основе которых лежит декомпозиция, тестирование и тщательное обдумывание последующих шагов, будут полезны всем, кто заинтересован в улучшении своих навыков в программировании и создании качественного кода.

e2e4gu.ru

vk.com/...ers

dzen.ru/...98b

vc.ru/...gii

#разработкасайтов

#созданиепрограммногообеспечения

#автоматизациябизнеса

#разработка