Подстановочная модель вычислений (substitution model) – модель вычислений при которой происходит подстановка значений констант на место их идентификаторов
Ссылочная прозрачность и ссылочная непрозрачность — это свойства частей компьютерных программ. Выражение называется ссылочно прозрачным, если его можно заменить соответствующим значением без изменения поведения программы
Рассуждения в терминах эквивалентности (Equational reasoning) – парадигма в рамках которой и функции и их значения являются одним и тем же и их можно свободно заменять друг другом.
Реактивная модель
В рамках определения реактивной модели в книге раскрываются стандартные понятия.
Реактивная модель – модель ориентированная на потоки данных и распространение изменений. В основе модели лежит обмен сообщениями.
Основные атрибуты реактивной модели:
- отзывчивость (responsive) – реакция на действия пользователя
- эластичность (elastic) – возможность обрабатывать разную нагрузку
- отказоустойчивость (resilient) - устойчивость к ошибками
- обмен сообщениями и событиям
Обмен сообщениями подразумевает обмен событиями (Event) и командами (Command).
Доменные события обычно представлены одним из двух вариантов:
- идентификация по типу – каждому событию сопоставлен тип в системе
- собственное состояние – вся информация о событии находится внутри события.
Влияние событий обычно представлено одним из двух вариантов:
- система как снапшот – все события сразу изменяют состояние системы
- система как журнал изменений (Event log) – все события сохраняются и потом последовательно применяются к системе.
Далее в книге идет описание как в рамках языка Scala реализуются основные концепции управления и проводится связь между языком и перечисленными ранее парадигмами:
- управление «эффектами»
- управление задержками
- управление ошибками.
Основные момент связанные со Scala:
- Мощная система типов
- Функциональная парадигма как основная
- Алгебраические типы данных
- Модули как члены первого класса
Далее глубоко рассмотрены функциональные паттерны для реализации реактивных моделей, в основе лежат монады и функторы (примечание, без понимания монад и функторов читать раздел бессмысленно). Так же рассмотрены вопросы построения модулей и модулеризации приложения.
Способы создания реактивных доменных моделей
- promise и future - Под future обычно имеется в виду представление переменной, доступное только для чтения, а под promise — изменяемый контейнер с одиночным присваиванием, который передаёт значение future.
- явный обмен сообщениями
- модель акторов (например, на базе Akka) – стиль обмена «отправил и забыл» позволяет организовать асинхронное, событийно-ориентированное и неблокирующее взаимодействие. Акторы – однопоточные упрощенные модели вычислений. Конкурентность достигается за счет использования большого количества акторов.
- потоковая модель
Post #777
2.41K