Реактивные шаблоны проектирования

Реактивные шаблоны проектирования
Питер
sku: 201489589
ACCORDING TO OUR RECORDS THIS PRODUCT IS NOT AVAILABLE NOW
635.00 грн.
Shipping from: Ukraine
   Description
[html]Реактивное программирование - совершенно новая и многообещающая парадигма, позволяющая эффективно решать задачи, связанные с созданием распределенных систем и программированием для JVM. Книга "Реактивные шаблоны проектирования" расскажет, как организовать поток задач, наладить обмен сообщениями между элементами программы, обеспечить параллельную и конкурентную обработку и создавать надежные, отказоустойчивые и гибкие приложения. Перед вами - основополагающая работа по шаблонам проектирования (design patterns) этой парадигмы. Книга проиллюстрирована многочисленными примерами и ориентирована на опытных Java- и Scala-разработчиковОглавление книги "Реактивные шаблоны проектирования"Предисловие................................................................................................................16Введение.....................................................................................................................18Благодарности.............................................................................................................20Роланд Кун...............................................................................................................20Джейми Аллен..........................................................................................................21Брайан Ханафи.........................................................................................................21Об этой книге..............................................................................................................22Для кого эта книга....................................................................................................22Как читать книгу......................................................................................................23Условные обозначения.............................................................................................23Исходный код для примеров.....................................................................................24Об авторах..................................................................................................................25Часть I. Основные сведенияГлава 1. Зачем нужна реактивность.......................................................................... 291.1. Анатомия реактивного приложения...................................................................301.2. Справляемся с нагрузкой...................................................................................321.3. Обработка сбоев................................................................................................331.4. Придание системе отзывчивости........................................................................351.5. Избегаем архитектуры вида «большой ком грязи».............................................361.6. Взаимодействие нереактивных компонентов......................................................371.7. Резюме...............................................................................................................38Глава 2. Подробный разбор манифеста реактивного программирования .................. 392.1. Реакция на действия пользователей..................................................................39Понимание традиционного подхода.............................................................41Анализ времени ожидания при наличии разделяемого ресурса....................42Ограничение максимального времени ожидания с помощью очереди..........432.2. Применение параллелизма................................................................................45Уменьшение времени ожидания с помощью параллелизма..........................46Улучшение параллелизма с помощью составных объектов Future................47Цена иллюзии последовательного выполнения............................................492.3. Ограничения параллельного выполнения..........................................................51Закон Амдала...............................................................................................51Универсальный закон масштабируемости.....................................................522.4. Реакция на сбой.................................................................................................54Разделение и изоляция................................................................................56Использование предохранителей.................................................................57Наблюдение.................................................................................................592.5. Утрата строгой согласованности........................................................................60ACID 2.0.......................................................................................................62Принятие обновлений..................................................................................632.6. Необходимость в реактивных шаблонах проектирования...................................65Управление сложностью..............................................................................66Делаем модели программирования ближе к реальному миру.......................672.7. Резюме...............................................................................................................68Глава 3. Инструменты реактивного программирования ............................................ 693.1. Первые реактивные решения.............................................................................693.2. Функциональное программирование..................................................................71Неизменяемость...........................................................................................72Ссылочная чистота.......................................................................................75Побочные эффекты......................................................................................76Функции первого класса..............................................................................773.3. Отзывчивость на действия пользователя...........................................................773.4. Инструментарий для реактивного программирования........................................79Зеленые потоки...........................................................................................79Циклы обработки событий...........................................................................80Взаимодействие последовательных процессов.............................................82Объекты Future и Promise.............................................................................84Библиотека Reactive Extensions....................................................................89Модель акторов...........................................................................................913.5. Резюме..............................................................................................................96Часть II. Кратко о философииреактивного программированияГлава 4. Обмен сообщениями ................................................................................... 994.1. Сообщения.........................................................................................................994.2. Вертикальное масштабирование......................................................................1004.3. Различия между передачей событий и сообщений...........................................1014.4. Сравнение синхронности и асинхронности.......................................................1044.5. Управление потоком........................................................................................1064.6. Гарантии доставки...........................................................................................1084.7. События и сообщения......................................................................................1114.8. Синхронный обмен сообщениями.....................................................................1134.9. Резюме............................................................................................................113Глава 5. Прозрачность размещения ....................................................................... 1145.1. Что такое прозрачность размещения...............................................................1145.2. Обманчивость прозрачной удаленности...........................................................1155.3. Открытый обмен сообщениями приходит на помощь........................................1165.4. Оптимизация локального обмена сообщениями...............................................1185.5. Потеря сообщений...........................................................................................1185.6. Горизонтальная масштабируемость..................................................................1205.7. Прозрачность размещения упрощает тестирование..........................................1215.8. Динамическое связывание...............................................................................1225.9. Резюме............................................................................................................124Глава 6. Разделяй и властвуй ................................................................................. 1256.1. Иерархическое разбиение проблем..................................................................1256.2. Разница между зависимостями и дочерними модулями....................................1276.3. Построение собственной большой корпорации................................................1306.4. Преимущества спецификации и тестирования..................................................1326.5. Горизонтальное и вертикальное масштабирование..........................................1336.6. Резюме............................................................................................................134Глава 7. Принципиальная обработка сбоев ............................................................ 1357.1. Владение подразумевает взятие на себя обязательств.....................................1357.2. Владение подразумевает управление жизненным циклом................................1387.3. Устойчивость на всех уровнях..........................................................................1397.4. Резюме.............................................................................................................140Глава 8. Разделенная согласованность ................................................................... 1418.1. Инкапсулированные модули в качестве решения.............................................1428.2. Группирование данных и поведения в соответствии с транзакционными ограничениями.......................................................................................................1438.3. Моделирование межтранзакционных рабочих процессов.................................1448.4. Единица измерения сбоев = единица измерения согласованности...................1458.5. Разделение ответственности............................................................................1458.6. Сохранение изолированных областей согласованности....................................1488.7. Резюме.............................................................................................................149Глава 9. Вынужденная неопределенность .............................................................. 1509.1. Логическое программирование и декларативный способ передачи данных......1509.2. Функциональное реактивное программирование..............................................1529.3. Отсутствие общих данных упрощает параллелизм...........................................1539.4. Конкурентность с разделяемым состоянием.....................................................1549.5. Так что же нам делать?...................................................................................1559.6. Резюме............................................................................................................156Глава 10. Поток сообщений ................................................................................... 15710.1. Продвижение данных.....................................................................................15710.2. Моделирование процессов вашей предметной области..................................15910.3. Определение ограничений устойчивости.......................................................16010.4. Оценка потенциальной нагрузки и масштаба развертывания.........................16110.5. Планирование управления потоками..............................................................16110.6. Резюме...........................................................................................................162Часть III. Шаблоны проектированияГлава 11. Тестирование реактивных приложений .................................................. 16511.1. Как тестировать.............................................................................................165Модульные тесты.......................................................................................166Компонентные тесты..................................................................................167Цепные тесты............................................................................................167Интеграционные тесты...............................................................................168Приемочные пользовательские тесты.........................................................168Тестирование с помощью стратегий черного и белого ящиков...................16911.2. Тестовая среда...............................................................................................17011.3. Асинхронное тестирование............................................................................171Предоставление блокирующих получателей сообщений.............................172Тонкости выбора времени ожидания..........................................................174Проверка на отсутствие сообщения...........................................................181Предоставление средств синхронного выполнения....................................182Асинхронные утверждения.........................................................................184Полностью асинхронные тесты..................................................................185Проверка отсутствия асинхронных ошибок................................................18711.4. Тестирование недетерминистских систем.......................................................191Проблема планирования............................................................................191Тестирование распределенных компонентов..............................................192Симуляция акторов....................................................................................193Распределенные компоненты.....................................................................19411.5. Тестирование гибкости..................................................................................19511.6. Тестирование устойчивости...........................................................................195Устойчивость приложения..........................................................................196Устойчивость инфраструктуры...................................................................20011.7. Тестирование отзывчивости...........................................................................20211.8. Резюме...........................................................................................................203Глава 12. Шаблоны отказоустойчивости и восстановления .................................... 20412.1. Шаблон «Простой компонент».......................................................................204Постановка задачи.....................................................................................205Использование шаблона............................................................................205Пересмотр шаблона...................................................................................208Область применения..................................................................................20812.2. Шаблон «Ядро ошибок».................................................................................209Постановка задачи.....................................................................................209Использование шаблона............................................................................210Пересмотр шаблона...................................................................................214Область применения..................................................................................21412.3. Шаблон «Допустимый отказ».........................................................................215Постановка задачи.....................................................................................215Использование шаблона............................................................................216Пересмотр шаблона...................................................................................217Замечания относительно реализации.........................................................218Производная — шаблон «Пульс»................................................................219Производная — шаблон «Упреждающий сигнал об отказе».......................22012.4. Шаблон «Предохранитель»............................................................................221Постановка задачи.....................................................................................222Использование шаблона............................................................................223Пересмотр шаблона...................................................................................226Область применения..................................................................................22712.5. Резюме...........................................................................................................228Глава 13. Шаблоны репликации ............................................................................. 22913.1. Шаблон репликации «Активный к пассивному»..............................................229Постановка задачи.....................................................................................230Использование шаблона............................................................................231Пересмотр шаблона...................................................................................242Область применения..................................................................................24313.2. Шаблоны репликации с несколькими активными копиями..............................244Репликация на основе консенсуса..............................................................244Репликация с обнаружением и разрешением конфликтов..........................247Бесконфликтные реплицируемые типы данных..........................................25013.3. Шаблон репликации «Активный к активному»...............................................257Постановка задачи.....................................................................................258Использование шаблона............................................................................259Пересмотр шаблона...................................................................................265Сравнение с виртуальной синхронностью..................................................26613.4. Резюме...........................................................................................................268Глава 14. Шаблоны управления ресурсами ............................................................ 26914.1. Шаблон инкапсуляции ресурсов.....................................................................269Постановка задачи.....................................................................................270Использование шаблона............................................................................270Пересмотр шаблона...................................................................................277Область применения..................................................................................27814.2. Шаблон заимствования ресурсов...................................................................278Постановка задачи.....................................................................................279Использование шаблона............................................................................279Пересмотр шаблона...................................................................................282Область применения..................................................................................283Замечания относительно реализации.........................................................283Вариант: применение шаблона заимствования ресурсов для открытиячастичного доступа....................................................................................28414.3. Шаблон «Составная команда»........................................................................284Постановка задачи.....................................................................................285Использование шаблона............................................................................286Пересмотр шаблона...................................................................................294Использование шаблона............................................................................29414.4. Шаблон «Пул ресурсов».................................................................................295Постановка задачи.....................................................................................295Использование шаблона............................................................................296Пересмотр шаблона...................................................................................299Замечания относительно реализации.........................................................30014.5. Шаблоны управляемой блокировки................................................................300Постановка задачи.....................................................................................301Использование шаблона............................................................................302Пересмотр шаблона...................................................................................304Область применения..................................................................................30614.6. Резюме...........................................................................................................306Глава 15. Шаблоны потока сообщений ................................................................... 30815.1. Шаблон «Запрос — отклик»...........................................................................308Постановка задачи.....................................................................................309Использование шаблона............................................................................310Распространенные реализации шаблона....................................................312Пересмотр шаблона...................................................................................317Область применения..................................................................................31815.2. Шаблон «Самодостаточное сообщение».........................................................318Постановка задачи.....................................................................................319Использование шаблона............................................................................320Пересмотр шаблона...................................................................................322Область применения..................................................................................32215.3. Шаблон запроса.............................................................................................323Постановка задачи.....................................................................................323Использование шаблона............................................................................324Пересмотр шаблона...................................................................................327Область применения..................................................................................32915.4. Шаблон «Прямоток»......................................................................................329Постановка задачи.....................................................................................329Использование шаблона............................................................................330Пересмотр шаблона...................................................................................331Область применения..................................................................................33115.5. Шаблон «Агрегатор»......................................................................................331Постановка задачи.....................................................................................332Использование шаблона............................................................................332Пересмотр шаблона...................................................................................336Область применения..................................................................................33615.6. Шаблон «Повествование»..............................................................................337Постановка задачи.....................................................................................337Использование шаблона............................................................................338Пересмотр шаблона...................................................................................340Область применения..................................................................................34115.7. Шаблон «Рукопожатие» (он же шаблон надежной доставки)..........................342Постановка задачи.....................................................................................342Использование шаблона............................................................................343Пересмотр шаблона...................................................................................348Область применения..................................................................................34815.8. Резюме...........................................................................................................349Глава 16. Шаблоны управления потоком ............................................................... 35016.1. Модель «Извлечение»....................................................................................350Постановка задачи.....................................................................................351Использование шаблона............................................................................351Пересмотр шаблона...................................................................................353Область применения..................................................................................35416.2. Шаблон управляемой очереди.......................................................................355Постановка задачи.....................................................................................355Использование шаблона............................................................................356Пересмотр шаблона...................................................................................357Область применения..................................................................................35816.3. Шаблон отказа...............................................................................................358Постановка задачи.....................................................................................359Использование шаблона............................................................................359Пересмотр шаблона...................................................................................361Область применения..................................................................................36416.4. Шаблон «Регулирование»..............................................................................364Постановка задачи.....................................................................................364Использование шаблона............................................................................365Пересмотр шаблона...................................................................................36716.5. Резюме...........................................................................................................368Глава 17. Шаблоны для управления состоянием и обеспечения устойчивости ....... 36917.1. Шаблон реализации предметной области.......................................................369Постановка задачи.....................................................................................370Использование шаблона............................................................................370Пересмотр шаблона...................................................................................37417.2. Шаблон сегментирования...............................................................................374Постановка задачи.....................................................................................374Использование шаблона............................................................................375Пересмотр шаблона...................................................................................377Важное замечание.....................................................................................37717.3. Шаблон «Порождение событий»....................................................................378Постановка задачи.....................................................................................378Использование шаблона............................................................................379Пересмотр шаблона...................................................................................380Область применения..................................................................................38117.4. Шаблон «Поток событий»...............................................................................382Постановка задачи.....................................................................................382Использование шаблона............................................................................382Пересмотр шаблона...................................................................................384Область применения..................................................................................38517.5. Резюме...........................................................................................................386ПриложенияПриложение А. Создание схем для реактивных систем...........................................388Приложение Б. Иллюстрированный пример............................................................390Б.1. Географическое разделение............................................................................390Б.2. Планирование потока информации..................................................................392Шаг 1: прием данных.................................................................................393Шаг 2: передача данных в подходящую географическую область..............394Шаг 3: перераспределение данныхдля повышения эффективности запросов..................................................395Подведение итогов....................................................................................398Б.3. А если что-то пойдет не так?...........................................................................398Неполадки на клиентской стороне.............................................................399Неполадки в сетевом интерфейсе клиента.................................................399Отказ узла для приема данных..................................................................400Сбой сетевого соединения между узлом приема данныхи областью карты.......................................................................................400Отказ узла, обрабатывающего область карты............................................401Отказ области с обобщенной информацией...............................................402Сбой соединения между областями карты..................................................402Отказ узла с представлением карты...........................................................402Собираем воедино процесс обработки ошибок...........................................403Б.4. Чему нас научил этот пример?.........................................................................403Б.5. Дальнейшие шаги............................................................................................404Приложение В. Манифест реактивного программирования.....................................405В.1. Основной текст................................................................................................405В.2. Глоссарий........................................................................................................407Асинхронность...........................................................................................407Гибкость в сравнении с масштабируемостью..............................................407Делегирование...........................................................................................408Изоляция и сдерживание...........................................................................408Компонент.................................................................................................409Масштабируемость.....................................................................................409Обмен сообщениями в сравнении с событийной моделью..........................409Обратное давление....................................................................................410Отказ в сравнении с ошибкой....................................................................410Отсутствие блокирования..........................................................................411Пакетирование...........................................................................................411Пользователь.............................................................................................412Прозрачность размещения.........................................................................412Протокол...................................................................................................413Репликация................................................................................................413Ресурс........................................................................................................413Система.....................................................................................................414[/html]
   Technical Details
categoryTitle: Научная и техническая литература
   Price history chart & currency exchange rate

Customers also viewed