Кент Бек - Экстремальное программирование: Разработка через тестирование
Название: | Экстремальное программирование: Разработка через тестирование | |
Автор: | Кент Бек | |
Жанр: | Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Отладка, тестирование и оптимизация ПО, Программирование: прочее | |
Изадано в серии: | Библиотека программиста | |
Издательство: | Питер | |
Год издания: | 2017 | |
ISBN: | 978-5-496-02570-6 | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Экстремальное программирование: Разработка через тестирование"
Возвращение знаменитого бестселлера. Изящный, гибкий и понятный код, который легко модифицировать, который корректно работает и который не подкидывает своим создателям неприятных сюрпризов. Неужели подобное возможно? Чтобы достичь цели, попробуйте тестировать программу еще до того, как она написана. Именно такая парадоксальная идея положена в основу методики TDD (Test-Driven-Development – разработка, основанная на тестировании). Бессмыслица? Не спешите делать скороспелые выводы. Рассматривая применение TDD на примере разработки реального программного кода, автор демонстрирует простоту и мощь этой методики. В книге приведены два программных проекта, целиком и полностью реализованных с использованием TDD. За рассмотрением примеров следует обширный каталог приемов работы в стиле TDD, а также паттернов и рефакторингов, имеющих отношение к TDD. Книга будет полезна для любого программиста, желающего повысить производительность своей работы и получить удовольствие от программирования.
К этой книге применимы такие ключевые слова (теги) как: тестирование,искусство программирования,разработка программного обеспечения
Читаем онлайн "Экстремальное программирование: Разработка через тестирование" (ознакомительный отрывок). [Страница - 2]
- 1
- 2
- 3
- 4
- . . .
- последняя (7) »
Итак, идея проста, но в чем наш интерес? Почему программист должен взять на себя дополнительную обязанность писать автоматизированные тесты? Зачем программисту двигаться вперед малюсенькими шажками, когда его мозг в состоянии продумать гораздо более сложную структуру дизайна? Храбрость.
Храбрость
TDD – это способ управления страхом в процессе программирования. Я не имею в виду страх падения со стула или страх перед начальником. Я имею в виду страх перед задачей, «настолько сложной, что я пока понятия не имею, как ее решить». Боль – это когда природа говорит нам: «Стоп!», а страх – это когда природа говорит нам: «Будь осторожен!» Осторожность – это совсем не плохо, однако помимо пользы страх оказывает на нас некоторое негативное влияние:• страх заставляет нас заблаговременно и тщательно обдумывать, к чему может привести то или иное действие;
• страх заставляет нас меньше общаться;
• страх заставляет нас пугаться отзывов о нашей работе;
• страх делает нас раздражительными.
Ничего из этого нельзя назвать полезным для процесса программирования, особенно если вы работаете над сложной задачей. Итак, перед нами встает вопрос, как выйти из сложной ситуации и
• не пытаться предсказать будущее, а немедленно приступить к практическому изучению проблемы;
• не отгораживаться от остального мира, а повысить уровень коммуникации;
• не избегать откликов, а, напротив, установить надежную обратную связь и с ее помощью тщательно контролировать результаты своих действий;
• (с раздражением вы должны справиться самостоятельно).
Сравним программирование с подъемом ведра из колодца. Ведро наполнено водой, вы вращаете рычаг, наматывая цепь на ворот и поднимая ведро наверх. Если ведро небольшое, вполне подойдет обычный, свободно вращающийся ворот. Но если ведро большое и тяжелое, вы устанете прежде, чем поднимете его. Чтобы получить возможность отдыхать между поворотами рычага, необходим храповой механизм, позволяющий фиксировать рычаг. Чем тяжелее ведро, тем чаще должны следовать зубья на шестеренке храповика.
Тесты в TDD – это зубья на шестеренке храповика. Заставив тест работать, мы знаем, что теперь тест работает, отныне и навеки. Мы стали на шаг ближе к завершению работы, чем были до того, как тест заработал. После этого мы заставляем работать второй тест, затем третий, четвертый и т. д. Чем сложнее проблема, стоящая перед программистом, тем меньше функциональных возможностей должен охватывать каждый тест.
Читатели книги Extreme Programming Explaine[1], должно быть, обратили внимание на разницу в тоне между экстремальным программированием (Extreme Programming, XP) и разработкой через тестирование (Test-Driven Development, TDD). В отличие от XP методика TDD не является абсолютной. XP говорит: «чтобы двигаться дальше, вы обязаны освоить это и это». TDD – менее конкретная методика. TDD предполагает наличие интервала между принятием решения и получением результатов, и предлагает инструменты управления продолжительностью этого интервала. «Что, если в течение недели я буду проектировать алгоритм на бумаге, а затем напишу код, использовав подход “сначала тесты”? Будет ли это соответствовать TDD?» Конечно, будет. Вы знаете величину интервала между принятием решения и оценкой результатов и осознанно контролируете этот интервал.
Большинство людей, освоивших TDD, утверждают, что их практика программирования изменилась к лучшему. Инфицированные тестами (test infected) – такое определение придумал Эрих Гамма (Erich Gamma), чтобы описать данное изменение. Освоив TDD, вы обнаруживаете, что пишете значительно больше тестов, чем раньше, и двигаетесь вперед малюсенькими шагами, которые раньше показались бы вам бессмысленными. С другой стороны, некоторые программисты, познакомившись с TDD, решают вернуться к использованию прежних практик, зарезервировав TDD для особых случаев, когда обычное программирование не приводит к желаемому прогрессу.
Определенно, существуют задачи, которые невозможно (по крайней мере, на текущий момент) решить только при помощи тестов. В частности, TDD не позволяет механически продемонстрировать адекватность разработанного кода с точки зрения безопасности данных и --">- 1
- 2
- 3
- 4
- . . .
- последняя (7) »
Книги схожие с «Экстремальное программирование: Разработка через тестирование» по жанру, серии, автору или названию:
Бьерн Страуструп - Программирование. Принципы и практика с использованием C++ Жанр: C, C++, C# Год издания: 2016 |
Джастин Зейтц, Тим Арнольд - Black Hat Python: программирование для хакеров и пентестеров Жанр: Хакерство Год издания: 2022 Серия: Библиотека программиста |
Джастин Сейтц - Программирование на Python для хакеров Жанр: Python Год издания: 2012 |
Чед Фаулер - Программист-фанатик Жанр: Программирование: прочее Год издания: 2015 Серия: Библиотека программиста |
Другие книги из серии «Библиотека программиста»:
Кент Бек - Экстремальное программирование: Разработка через тестирование Жанр: Современные российские издания Год издания: 2017 Серия: Библиотека программиста |
Брайан Хоган - HTML5 и CSS3. Веб-разработка по стандартам нового поколения Жанр: Web-дизайн Год издания: 2014 Серия: Библиотека программиста |
Джульен Данжу - Путь Python. Черный пояс по разработке, масштабированию, тестированию и развертыванию Жанр: Python Год издания: 2020 Серия: Библиотека программиста |
Кайл Симпсон - Область видимости и замыкания Жанр: Учебники и самоучители по компьютеру Год издания: 2022 Серия: Библиотека программиста |