Проектирование и дизайн ПО для тех, кому не все равно

Разработка и тестирование ПО.

Майкл Нейгард «Release it! Проектирование и дизайн ПО для тех, кому не все равно» Питер, 2016 год, 320 стр. (21,5 мб. pdf)

 

Для кого эта книга.

Эта книга для проектировщиков, дизайнеров и основная её тема — разработка программ и решение проблем возникающих у разработчиков на стадии проектирования. В основном это относится к программному обеспечению коммерческого направления, ошибки в работе которого могут приводить к возникновению критических ситуаций в компаниях использующих его.

О книге.

Автор делится своим опытом решения возникающих трудностей при проектировании и разработке программ. Приводит большое количество шаблонов проектирования, которые в большинстве случаев застрахуют вас в критических ситуациях. А так же укажет и проиллюстрирует антишаблоны, с неправильными подходами. Проводится анализ возможных последствий кустарного подхода к разработке ПО ведущего к появлению багов в программах.. В книге примеры приводятся на Java с подробными комментариями и разъяснениями. Основной упор при разработке сделан на безопасности, стабильности работы ПО, разработке дружественного интерфейса. Несмотря на специфичность темы, книга увлекает и легко читается даже начинающими программистами, будет интересна тестировщикам программного обеспечения и WEB разработчикам.
ISBN: 978-5-496-01611-7

Оглавление книги
Содержание
Предисловие 12
Для кого предназначена эта книга? 13
Структура книги 14
Анализ примеров 15
Благодарности 15
1. Введение 16
1.1. Правильный выбор цели 17
1.2. Важность интуиции 18
1.3. Качество жизни 18
1.4. Охват проблемы 19
1.5. Миллионом больше, миллионом меньше 20
1.6. Прагматичная архитектура 21

Часть I. Стабильность
2. Исключение, помешавшее работе авиакомпании 24
2.1. Авария 25
2.2. Последствия 30
8 Содержание
2.3. Анализ причин сбоя 31
2.4. Бесспорное доказательство 34
2.5. Легче предупредить, чем лечить? 36
3. Понятие стабильности 38
3.1. Определение стабильности 39
3.2. Режимы отказов 41
3.3. Распространение трещин 42
3.4. Цепочка отказов 43
3.5. Паттерны и антипаттерны 44
4. Антипаттерны стабильности 46
4.1. Точки интеграции 48
4.2. Цепные реакции 61
4.3. Каскадные отказы 64
4.4. Пользователи 67
4.5. Блокированные программные потоки 79
4.6. Самостоятельно спровоцированный отказ в обслуживании 85
4.7. Эффекты масштабирования 88
4.8. Несбалансированные мощности 93
4.9. Медленная реакция 97
4.10. SLA-инверсия 98
4.11. Огромные наборы результатов 102
5. Паттерны стабильности 106
5.1. Задавайте таймауты 106
5.2. Предохранители 110
5.3. Переборки 113
5.4. Стабильное состояние 117
5.5. Быстрый отказ 123
5.6. Квитирование 126
5.7. Тестовая программа 128
5.8. Разделение связующего ПО 132
6. Заключение по теме стабильности 135

Часть II. Вычислительная мощность
7. Затоптаны клиентами 138
7.1. Обратный отсчет и запуск 138
7.2. Цель — пройти тест качества 139
7.3. Нагрузочное тестирование 142
7.4. Растоптаны толпой 145
7.5. Недочеты тестирования 147
7.6. Последствия 148
8. Понятие вычислительной мощности 151
8.1. Определение вычислительной мощности 151
8.2. Ограничители 153
8.3. Взаимное влияние 155
8.4. Масштабируемость 155
8.5. Мифы о вычислительной мощности 157
8.6. Заключение 163
9. Антипаттерны вычислительной мощности 165
9.1. Конкуренция в пуле ресурсов 165
9.2. Избыточные JSP-фрагменты 169
9.3. Перебор с AJAX 170
9.4. Затянувшиеся сеансы 173
9.5. Напрасный расход пространства HTML-страницами 175
9.6. Кнопка обновления страницы 179
9.7. Кустарный SQL-код 180
9.8. Эвтрофикация базы данных 183
9.9. Задержка в точках интеграции 186
9.10. Cookie-монстры 187
9.11. Заключение 189
10. Паттерны вычислительной мощности 191
10.1. Организация пула соединений 192
10.2. Будьте осторожны с кэшированием 194
10.3. Предварительное вычисление контента 196
10.4. Настройка сборщика мусора 199
10.5. Заключение 202

Часть III. Общие вопросы проектирования
11. Организация сети 204
11.1. Многоинтерфейсные серверы 204
11.2. Маршрутизация 207
11.3. Виртуальные IP-адреса 208
12. Безопасность 211
12.1. Принцип минимальных привилегий 211
12.2. Настроенные пароли 212
13. Доступность 214
13.1. Сбор требований доступности 214
13.2. Документирование требований
доступности 215
13.3. Балансировка нагрузки 217
13.4. Кластеризация 223
14. Администрирование 225
14.1. «Совпадают ли условия тестирования с условиями эксплуатации?» 226
14.2. Конфигурационные файлы 228
14.3. Начало и завершение работы 231
14.4. Административные интерфейсы 232
15. Заключение по теме проектирования 233

Часть IV. Эксплуатация
16. Феноменальная мощь и маленькое жизненное пространство 236
16.1. Время максимальной нагрузки 236
16.2. Первое в жизни Рождество 237
16.3. Рука на пульсе 238
16.4. День благодарения 240
16.5. Черная пятница 240
16.6. Жизненно важные функции 242
16.7. Диагностические тесты 243
16.8. Обращение к специалисту 244
16.9. Сравнение вариантов лечения 245
16.10. Есть ли реакция на лекарство? 246
16.11. Выводы 247
17. Прозрачность 248
17.1. Точки зрения 250
17.2. Проектирование с учетом прозрачности 257
17.3. Применение технологий 258
17.4. Протоколирование 259
17.5. Системы мониторинга 266
17.6. Стандарты де юре и де факто 271
17.7. База данных функционирования системы 280
17.8. Вспомогательные процессы 286
17.9. Заключение 290
18. Адаптация 292
18.1. Адаптация со временем 293
18.2. Проектирование адаптируемого ПО 294
18.3. Адаптируемая архитектура предприятия 301
18.4. Безболезненный переход к новой версии 308
18.5. Заключение 316
Список литературы 317

Скачать книгу бесплатно21,5 мб. pdf
Разработка игр. Видео

Похожая литература