Возвращение знаменитого бестселлера. Изящный, гибкий и понятный код, который легко модифицировать, который корректно работает и который не подкидывает своим создателям неприятных сюрпризов. Неужели подобное возможно? Чтобы достичь цели, попробуйте тестировать программу еще до того, как она написана. Именно такая парадоксальная идея положена в основу методики TDD (Test-Driven-Development — разработка, основанная на тестировании). Бессмыслица? Не спешите делать скороспелые выводы. Рассматривая применение TDD на примере разработки реального программного кода, автор демонстрирует простоту и мощь этой методики. В книге приведены два программных проекта, целиком и полностью реализованных с использованием TDD. За рассмотрением примеров следует обширный каталог приемов работы в стиле TDD, а также паттернов и рефакторингов, имеющих отношение к TDD. Книга будет полезна для любого программиста, желающего повысить производительность своей работы и получить удовольствие от программирования.
Михаил20.09.2025
Идея гениальна. Хотя уже прошло почти четверть века с момента публикации первого издания данной книги (2002), но книга актуальна и сегодна для новых поколений разработчиков. Содержание книги на 5 из 5. Полезна для понимания подхода разработки через тестирование. Книга написана маленькими главками. Читается и понимается легко. Хотя, на мой взгляд, написана не очень лаконично, но тем не менее, подробно даны объяснения и практические примеры того, как вести данную разработку. Мне книга очень понравилась, она меня мотивировала на TDD. Но кроме знания процесса TDD, нужно также знать как на практике правильно писать хорошие и эффективные тесты. Об этом можно узнать в отличной книге "Принципы юнит-тестирования" Владимира Хорикова. Вместе, две эти книги, дадут достаточно широкое представление о природе юнит-тестирования. Я бы даже сначала рекомендовал прочитать книгу "Принципы юнит-тестирования", а потом уже TDD от Кена Бэка, чтобы сразу после прочтения перейти к ТDD, уже понимая, как именно писать хорошие тесты. В заключении, приведу цитату от Кена Бека: "Те кто стремиться к изяществу, могут найти в TDD средство для достижения цели". Русское издание имеет ряд небольших огрехов. Первый - это неверный перевод оригинального названия. В оригинальном названии книги нет фразы "Экстремальное программирование". Книга, не об экстремальном программировании, а о методике разработки через написание автоматических тестов (оригинальное название этой книги Test Driven Development by Example). Впрочем у автора, действительно, есть две другие книги про экстремальное программирование, но не эта. Второй огрех - опечатки в коде и в тексе. Их не так много, но они есть (например, на стр 210 fist вместо first). И третий огрех - не сохранено оригинальное форматирование кода и списка задач - они идут часто вместе, сливаясь, что затрудняет чтение.
Михаил Г31.08.2025
В русском издании за 2025 год есть опечатки. Например, на странице 110 в двух местах: 1)неверно сдвинут def tearDown, 2) на последней строчке teardown вместо tearDown.
Рафаил26.11.2021
Неплохая книжуля про TDD и не только, достаточно короткая (однотипные куски кода добавляют много страниц), не требует предварительной теории и имеет достаточно простой язык
Круто, что немало мыслей со стороны рассматривания методики прогания относится к софт скиллам, особенностей мышления, взаимоотношений, психологии. Прикольные лайфхаки типа закончить сеанс прогания на «красной полосе», чтобы затем было легко снова залесть в контекст, уже зная, что именно нужно решить и так втянуться в работу.
Раскрывает ментальные аспекты полного покрытия кода тестами, приводя много доводов «за».
Напоминает Мартина) тот тоже много пишет о ментальности и долгих инвестициях в себя и процесс прогания, профите от этих инвестиций, которого не будет от мышления «здесь и сейчас» и разных «оптимизаций»
Основная идея писать тест: вносить небольшие изменения, рефакторить очень маленькими шагами, соблюдая свое метальное здоровье, меньше боятся за непредвиденные сайд эффекты, закреплять результат предыдущей работы.
Но достаточно подробно расписано почему тесты это не только «проверка результатов»
Примеры по большей части в ООП стиле и часто описание нового кода внутри примеров связано именно с решением базовых ООП проблем, что может смутить тех, уже использует фреймворк, в котором эти проблемы решены или вообще не использует ООП. Например, вопросы путания контекста или особенности синтаксиса выбранного языка. Но в целом для объяснения идей вполне хорошие примеры.
Плюс все разбавлено краткой выжимкой по теории паттернов (ООПшных по большей части), что тоже может быть полезно)
Советую всем, кто хоть чуть-чуть кодит, книжуля реально может залететь за 2-4 вечера, а пользы принести на десятилетия вперед.