КнигоПровод.Ru27.11.2024

/ИТ-книги

Экстремальное программирование: разработка через тестирование — Бек К.
Экстремальное программирование: разработка через тестирование
Бек К.
год издания — 2003, кол-во страниц — 224, ISBN — 5-8046-0051-6, 0-321-14653-0, тираж — 3000, язык — русский, тип обложки — мягк., масса книги — 215 гр., издательство — Питер
серия — Библиотека программиста
КНИГА СНЯТА С ПРОДАЖИ
Test-driven Development by Example
Pearson Education, Inc., 2003
Пер. с англ. П. Анджан
Уровень пользователя: опытный/эксперт
Формат 70x100 1/16
ключевые слова — tdd, uml, паттерн, рефакторинг

Изящный, гибкий и понятный код, который легко модифицировать, который корректно работает и который не подкидывает своим создателям неприятных сюрпризов. Неужели подобное возможно? Чтобы достичь цели, попробуйте тестировать программу ещё до того, как она написана. Именно такая парадоксальная идея положена в основу методики TDD (Test-Driven-Development — разработка, основанная на тестировании). Бессмыслица? Не спешите делать скороспелых выводов. Рассматривая применение TDD на примере разработки реального программного кода, автор демонстрирует простоту и мощь этой новой методики. В книге рассматриваются два программных проекта, целиком и полностью реализованных с использованием TDD. За рассмотрением примеров следует обширный каталог приёмов работы в стиле TDD, а также паттернов и рефакторингов, имеющих отношение к TDD. Книга будет полезна для любого программиста, желающего повысить производительность своей работы и получить удовольствие от программирования.

ОГЛАВЛЕНИЕ

Предисловие10
Храбрость11
Благодарности15
От издательства16
Введение17
Часть I. На примере денег21
Глава 1. Мультивалютные деньги22
Глава 2. Вырождающиеся объекты29
Глава 3. Равенство для всех32
Глава 4. Данные должны быть закрытыми36
Глава 5. Поговорим о франках39
Глава 6. Равенство для всех, вторая серия42
Глава 7. Яблоки и апельсины47
Глава 8. Создание объектов49
Глава 9. Потребность в валюте53
Глава 10. Избавление от двух разных версий times()58
Глава 11. Корень всего зла63
Глава 12. Сложение, наконец-то66
Глава 13. Делаем реализацию реальной71
Глава 14. Обмен валюты76
Глава 15. Смешение валют81
Глава 16. Абстракция, наконец-то!85
Глава 17. Ретроспектива денежного примера89
Что дальше?89
Метафора90
Использование JUnit91
Метрики кода92
Процесс92
Качество тестов93
Последний взгляд назад95
 
Часть II. На примере xUnit97
Глава 18. Первые шаги на пути к xUnit98
Глава 19. Сервируем стол (метод setup)104
Глава 20. Убираем со стола (метод tearDown)108
Глава 21. Учёт и контроль112
Глава 22. Обработка несработавшего теста115
Глава 23. Оформляем тесты в набор118
Глава 24. Ретроспектива xUnit123
 
Часть III. Паттерны для разработки через тестирование125
Глава 25. Паттерны разработки, основанной на тестах126
Тест126
Изолированный тест (Isolated Test)128
Список тестов (Test List)129
Вначале тест (Test First)131
Вначале оператор assert (Assert First)132
Тестовые данные (Test Data)134
Понятные данные (Evident Data)135
Глава 26. Паттерны красной полосы136
One Step Test (Тест одного шага)136
Starter Test (Начальный тест)137
Explanation Test (Объясняющий тест)139
Learning Test (Тест для изучения)139
Another Test (Ещё один тест)140
Regression Test (Регрессионный тест)141
Break (Перерыв)141
Do over (Начать сначала)143
Cheap Desk, Nice Chair (Дешёвый стол, хорошие кресла)144
Глава 27. Паттерны тестирования145
Дочерний тест (Child Test)145
Mock Object (Поддельный объект)146
Self Shunt (Самошунтирование)147
Log String (Строка-журнал)149
Crush Test Dummy (Тестирование обработки ошибок)149
Broken Test (Сломанный тест)151
Clean Check-in (Чистый выпускаемый код)151
Глава 28. Паттерны зеленой полосы153
Fake It (Подделка)153
Triangulate (Триангуляция)155
Obvious Implementation (Очевидная реализация)156
One to Many (От одного ко многим)157
Глава 29. Паттерны xUnit159
Assertion159
Fixture (Фикстура)161
External Fixture (Внешняя фикстура)163
Test Method (Тестовый метод)164
Exception Test (Тест исключения)166
All Tests (Все тесты)166
Глава 30. Паттерны проектирования168
Command (Команда)170
Value Object (Объект-значение)170
Null Object (Нуль-объект)172
Template Method (Шаблонный метод)173
Pluggable Object (Встраиваемый объект)175
Pluggable Selector (Встраиваемый переключатель)176
Factory Method (Фабричный метод)178
Imposter (Самозванец)179
Composite (Компоновщик)180
Collecting Parameter (Накопление в параметре)182
Singleton (Одиночка)183
Глава 31. Рефакторинг184
Reconcile Differences (Согласование различий)184
Isolate Change (Изоляция изменений)185
Migrate Data (Миграция данных)186
Extract Method (Выделение метода)188
Inline Method (Встраивание метода)189
Extract Interface (Выделение интерфейса)190
Move Method (Перемещение метода)191
Method Object (Метод в объект)192
Add Parameter (Добавление параметра)193
Method Parameter to Constructor Parameter (Параметр метода в параметр конструктора)193
Глава 32. Развитие навыков TDD195
Насколько большими должны быть шаги?195
Что не подлежит тестированию?196
Как определить качество тестов?196
Каким образом TDD ведет к созданию инфраструктур?197
Сколько должно быть тестов?198
Когда следует удалять тесты?200
Каким образом язык программирования и среда разработки влияют на TDD?201
Можно ли использовать TDD для разработки крупномасштабных систем?201
Можно ли осуществлять разработку приложения исходя из тестов уровня приложения?202
Как можно перейти к использованию TDD в середине работы над проектом?203
Для кого предназначена методика TDD?204
Зависит ли эффективность TDD от начальных условий?205
Каким образом методика TDD связана с паттернами?205
Почему TDD работает?206
Что означает имя?208
Как методика TDD связана с практиками экстремального программирования?208
Нерешённые проблемы TDD210
 
Послесловие211
 
Приложение I. Диаграммы взаимовлияния213
Обратная связь214
Контроль над системой215
 
Приложение II. Фибоначчи217
 
Алфавитный указатель220

Книги на ту же тему

  1. Объектно-ориентированный анализ и проектирование с использованием UML и IBM Rational Rose, Леоненков А. В., 2006
  2. Как проектируются и создаются программные комплексы: Мифический человеко-месяц: Очерки по системному программированию, Брукс мл. Ф. П., 1979
  3. Разработка программных проектов: на основе Rational Unified Process (RUP), Полис Г., Огастин Л., Лоу К., Мадхар Д., 2009
  4. Как пасти котов. Наставление для программистов, руководящих другими программистами, Рейнвотер Д. Х., 2011
  5. Электронный магазин на Java и XML (+CD-ROM), Брогден Б., Минник К., 2002

© 1913—2013 КнигоПровод.Ruhttp://knigoprovod.com