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

Майкл Нейгард

Не важно, каким инструментом вы пользуетесь для программной разработки - Java, NET или Ruby on Rails. Написание кода - это еще только полдела. Готовы ли вы к внезапному наплыву ботов на ваш сайт? Предусмотрена ли в вашем ПО «защита от дурака»? Правильно ли вы понимаете юзабилити? Майкл Нейгард утверждает, что большинство проблем в программных продуктах были заложены в них еще на стадии дизайна и проектирования. Вы можете двигаться к идеалу сами - методом проб и ошибок, а можете использовать опыт автора. В этой книге вы найдете множество шаблонов проектирования, помогающих избежать критических ситуаций и не меньшее количество антишаблонов, иллюстрирующих неправильные подходы с подробным анализом возможных последствий. Любой разработчик, имеющий опыт многопоточного программирования, легко разберется в примерах на Java, которые подробно поясняются и комментируются.

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

Издательство: Питер, 2016 г.

ISBN 978-5-496-01611-7

Количество страниц: 320.

Содержание книги «Release it! Проектирование и дизайн ПО для тех, кому не все равно»:

  • 12 Предисловие
  • 13 Для кого предназначена эта книга?
  • 14 Структура книги
  • 15 Анализ примеров
  • 15 Благодарности
  • 16 1. Введение
    • 17 1.1. Правильный выбор цели
    • 18 1.2. Важность интуиции
    • 18 1.3. Качество жизни
    • 19 1.4. Охват проблемы
    • 20 1.5. Миллионом больше, миллионом меньше
    • 21 1.6. Прагматичная архитектура
  • 24 Часть I. Стабильность
    • 24 2. Исключение, помешавшее работе авиакомпании
      • 25 2.1. Авария
      • 30 2.2. Последствия
      • 31 2.3. Анализ причин сбоя
      • 34 2.4. Бесспорное доказательство
      • 36 2.5. Легче предупредить, чем лечить?
    • 38 3. Понятие стабильности
      • 39 3.1. Определение стабильности
      • 41 3.2. Режимы отказов
      • 42 3.3. Распространение трещин
      • 43 3.4. Цепочка отказов
      • 44 3.5. Паттерны и антипаттерны
    • 46 4. Антипаттерны стабильности
      • 48 4.1. Точки интеграции
      • 61 4.2. Цепные реакции
      • 64 4.3. Каскадные отказы
      • 67 4.4. Пользователи
      • 79 4.5. Блокированные программные потоки
      • 85 4.6. Самостоятельно спровоцированный отказ в обслуживании
      • 88 4.7. Эффекты масштабирования
      • 93 4.8. Несбалансированные мощности
      • 97 4.9. Медленная реакция
      • 98 4.10. SLA-инверсия
      • 102 4.11. Огромные наборы результатов
    • 106 5. Паттерны стабильности
      • 106 5.1. Задавайте таймауты
      • 110 5.2. Предохранители
      • 113 5.3. Переборки
      • 117 5.4. Стабильное состояние
      • 123 5.5. Быстрый отказ
      • 126 5.6. Квитирование
      • 128 5.7. Тестовая программа
      • 132 5.8. Разделение связующего ПО
    • 135 6. Заключение по теме стабильности
  • 138 Часть II. Вычислительная мощность
    • 138 7. Затоптаны клиентами
      • 138 7.1. Обратный отсчет и запуск
      • 139 7.2. Цель — пройти тест качества
      • 142 7.3. Нагрузочное тестирование
      • 145 7.4. Растоптаны толпой
      • 147 7.5. Недочеты тестирования
      • 148 7.6. Последствия
    • 151 8. Понятие вычислительной мощности
      • 151 8.1. Определение вычислительной мощности
      • 153 8.2. Ограничители
      • 155 8.3. Взаимное влияние
      • 155 8.4. Масштабируемость
      • 157 8.5. Мифы о вычислительной мощности
      • 163 8.6. Заключение
    • 165 9. Антипаттерны вычислительной мощности
      • 165 9.1. Конкуренция в пуле ресурсов
      • 169 9.2. Избыточные JSP-фрагменты
      • 170 9.3. Перебор с AJAX
      • 173 9.4. Затянувшиеся сеансы
      • 175 9.5. Напрасный расход пространства HTML-страницами
      • 179 9.6. Кнопка обновления страницы
      • 180 9.7. Кустарный SQL-код
      • 183 9.8. Эвтрофикация базы данных
      • 186 9.9. Задержка в точках интеграции
      • 187 9.10. Cookie-монстры
      • 189 9.11. Заключение
    • 191 10. Паттерны вычислительной мощности
      • 192 10.1. Организация пула соединений
      • 194 10.2. Будьте осторожны с кэшированием
      • 196 10.3. Предварительное вычисление контента
      • 199 10.4. Настройка сборщика мусора
      • 202 10.5. Заключение
  • 204 Часть III. Общие вопросы проектирования
    • 204 11. Организация сети
      • 204 11.1. Многоинтерфейсные серверы
      • 207 11.2. Маршрутизация
      • 208 11.3. Виртуальные IP-адреса
    • 211 12. Безопасность
      • 211 12.1. Принцип минимальных привилегий
      • 212 12.2. Настроенные пароли
    • 214 13. Доступность
      • 214 13.1. Сбор требований доступности
      • 215 13.2. Документирование требований доступности
      • 217 13.3. Балансировка нагрузки
      • 223 13.4. Кластеризация
    • 225 14. Администрирование
      • 226 14.1. «Совпадают ли условия тестирования с условиями эксплуатации?»
      • 228 14.2. Конфигурационные файлы
      • 231 14.3. Начало и завершение работы
      • 232 14.4. Административные интерфейсы
    • 233 15. Заключение по теме проектирования
  • 236 Часть IV. Эксплуатация
    • 236 16. Феноменальная мощь и маленькое жизненное пространство
      • 236 16.1. Время максимальной нагрузки
      • 237 16.2. Первое в жизни Рождество
      • 238 16.3. Рука на пульсе
      • 240 16.4. День благодарения
      • 240 16.5. Черная пятница
      • 242 16.6. Жизненно важные функции
      • 243 16.7. Диагностические тесты
      • 244 16.8. Обращение к специалисту
      • 245 16.9. Сравнение вариантов лечения
      • 246 16.10. Есть ли реакция на лекарство?
      • 247 16.11. Выводы
    • 248 17. Прозрачность
      • 250 17.1. Точки зрения
      • 257 17.2. Проектирование с учетом прозрачности
      • 258 17.3. Применение технологий
      • 259 17.4. Протоколирование
      • 266 17.5. Системы мониторинга
      • 271 17.6. Стандарты де юре и де факто
      • 280 17.7. База данных функционирования системы
      • 286 17.8. Вспомогательные процессы
      • 290 17.9. Заключение
    • 292 18. Адаптация
      • 293 18.1. Адаптация со временем
      • 294 18.2. Проектирование адаптируемого ПО
      • 301 18.3. Адаптируемая архитектура предприятия
      • 308 18.4. Безболезненный переход к новой версии
      • 316 18.5. Заключение
  • 317 Список литературы

Инструкция как скачать книгу Майкл Нейгард: Release it! Проектирование и дизайн ПО для тех, кому не все равно в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
Release it! Проектирование и дизайн ПО для тех, кому не все равно
Рейтинг книги:
0 голосов
3454

Поиск книг:




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

Статистика: