Главная » 2015»Октябрь»1 » Release it! Проектирование и дизайн ПО для тех, кому не все равно
14:19
Release it! Проектирование и дизайн ПО для тех, кому не все равно
Release it! Проектирование и дизайн ПО для тех, кому не все равно — Неважно, каким инструментом вы пользуетесь для программной разработки — Java, .NET, или Ruby on Rails. Написание кода — это еще только полдела. Готовы ли вы к внезапному наплыву ботов на ваш сайт? Предусмотрена ли в вашем ПО «защита от дурака»? Правильно ли вы понимаете юзабилити? Майкл Нейгард утверждает, что большинство проблем в программных продуктах были заложены в них еще на стадии дизайна и проектирования. Вы можете двигаться к идеалу сами — методом проб и ошибок, а можете использовать опыт автора. В этой книге вы найдете множество шаблонов про- ектирования, помогающих избежать критических ситуаций, и не меньшее количество антишаблонов, иллюстрирующих неправильные подходы с подробным анализом возможных последствий. Любой разработчик, имеющий опыт многопоточного программирования, легко разберется в приведенных примерах на Java, которые подробно поясняются и комментируются. Стабильность, безопасность и дружественный интерфейс — вот три важнейших слагаемых успеха вашего программного продукта. Если в ваши планы не входит в течение последующих лет отвечать на недовольные письма пользователей, выслушивать критику заказчиков и постоянно латать дыры, устраняя возникающие баги, то прежде чем выпустить финальный релиз, прочтите эту книгу.
Название: Release it! Проектирование и дизайн ПО для тех, кому не все равно Автор: Майкл Нейгард Издательство: Питер Год: 2016 Страниц: 320 Формат: PDF Размер: 22,4 Мб ISBN: 978-5-496-01611-7 Качество: Отличное Серия или Выпуск: Библиотека программиста Язык: Русский
Содержание:
Предисловие Для кого предназначена эта книга? Структура книги Анализ примеров Благодарности 1. Введение 1.1. Правильный выбор цели 1.2. Важность интуиции 1.3. Качество жизни 1.4. Охват проблемы 1.5. Миллионом больше, миллионом меньше 1.6. Прагматичная архитектура Часть I. Стабильность 2. Исключение, помешавшее работе авиакомпании 2.1. Авария 2.2. Последствия 2.3. Анализ причин сбоя 2.4. Бесспорное доказательство 2.5. Легче предупредить, чем лечить? 3. Понятие стабильности 3.1. Определение стабильности 3.2. Режимы отказов 3.3. Распространение трещин 3.4. Цепочка отказов 3.5. Паттерны и антипаттерны 4. Антипаттерны стабильности 4.1. Точки интеграции 4.2. Цепные реакции 4.3. Каскадные отказы 4.4. Пользователи 4.5. Блокированные программные потоки 4.6. Самостоятельно спровоцированный отказ в обслуживании 4.7. Эффекты масштабирования 4.8. Несбалансированные мощности 4.9. Медленная реакция 4.10. SLA-инверсия 4.11. Огромные наборы результатов 5. Паттерны стабильности 5.1. Задавайте таймауты 5.2. Предохранители 5.3. Переборки 5.4. Стабильное состояние 5.5. Быстрый отказ 5.6. Квитирование 5.7. Тестовая программа 5.8. Разделение связующего ПО 6. Заключение по теме стабильности Часть II. Вычислительная мощность 7. Затоптаны клиентами 7.1. Обратный отсчет и запуск 7.2. Цель - пройти тест качества 7.3. Нагрузочное тестирование 7.4. Растоптаны толпой 7.5. Недочеты тестирования 7.6. Последствия 8. Понятие вычислительной мощности 8.1. Определение вычислительной мощности 8.2. Ограничители 8.3. Взаимное влияние 8.4. Масштабируемость 8.5. Мифы о вычислительной мощности 8.6. Заключение 9. Антипаттерны вычислительной мощности 9.1. Конкуренция в пуле ресурсов 9.2. Избыточные JSP-фрагменты 9.3. Перебор с AJAX 9.4. Затянувшиеся сеансы 9.5. Напрасный расход пространства HTML-страницами 9.6. Кнопка обновления страницы 9.7. Кустарный SQL-код 9.8. Эвтрофикация базы данных 9.9. Задержка в точках интеграции 9.10. Cookie-монстры 9.11. Заключение 10. Паттерны вычислительной мощности 10.1. Организация пула соединений 10.2. Будьте осторожны с кэшированием 10.3. Предварительное вычисление контента 10.4. Настройка сборщика мусора 10.5. Заключение Часть III. Общие вопросы проектирования 11. Организация сети 11.1. Многоинтерфейсные серверы 11.2. Маршрутизация 11.3. Виртуальные IP-адреса 12. Безопасность 12.1. Принцип минимальных привилегий 12.2. Настроенные пароли 13. Доступность 13.1. Сбор требований доступности 13.2. Документирование требований доступности 13.3. Балансировка нагрузки 13.4. Кластеризация 14. Администрирование 14.1. «Совпадают ли условия тестирования с условиями эксплуатации?» 14.2. Конфигурационные файлы 14.3. Начало и завершение работы 14.4. Административные интерфейсы 15. Заключение по теме проектирования Часть IV. Эксплуатация 16. Феноменальная мощь и маленькое жизненное пространство 16.1. Время максимальной нагрузки 16.2. Первое в жизни Рождество 16.3. Рука на пульсе 16.4. День благодарения 16.5. Черная пятница 16.6. Жизненно важные функции 16.7. Диагностические тесты 16.8. Обращение к специалисту 16.9. Сравнение вариантов лечения 16.10. Есть ли реакция на лекарство? 16.11. Выводы 17. Прозрачность 17.1. Точки зрения 17.2. Проектирование с учетом прозрачности 17.3. Применение технологий 17.4. Протоколирование 17.5. Системы мониторинга 17.6. Стандарты де юре и де факто 17.7. База данных функционирования системы 17.8. Вспомогательные процессы 17.9. Заключение 18. Адаптация 18.1. Адаптация со временем 18.2. Проектирование адаптируемого ПО 18.3. Адаптируемая архитектура предприятия 18.4. Безболезненный переход к новой версии 18.5. Заключение Список литературы