TGViewer
S0ER S0ER @softwareengineervlog · 10.4K subscribers
Post #776 2.26K
Конспект книги «Functional and reactive domain modeling»

Книга начинается с краткого введения в Доменно-ориентированный дизайн (DDD) кратко рассмотрены следующие моменты:
Доменная модель (модель предметной области) – это вся информация, необходимая для перевода бизнес-задачи на язык программирования.
Bounded context (ограниченный контекст) – реализация принципа слабого зацепления на уровне модулей. Та граница внутри которой существует модель предметной области.
Domain Driven design разделяет два понятия Entity (Сущность) и Value Object (объект-значение)
Value Object – это объект связанный с конкретным значением, которое является его состоянием.
Entity – понятие более выского уровня, относящееся к доменной модели и имеющее свою собственную идентичность (неповторимость)
Service (сервис) в том числе доменный сервис – понятие более высокого уровня объединяет несколько сущностей и объектов-значений.
Сущности имеют свою собственную, внутренне присущую им идентичность. Объекты-значения — нет.
Объект-значение имеет внутреннюю иммутабельность и могут свободно перераспределяться между сущностями
Понятие эквивалентности идентификаторов относится к сущностям; понятие структурной эквивалентности — к объектам-значениям; ссылочной эквивалентности — к обоим.
Сущности имеют историю; у объектов-значений нулевой жизненный цикл.
Объект-значение всегда должен принадлежать одной или нескольким сущностям, он не может жить собственной жизнью.
Объекты-значения должны быть неизменяемыми; сущности почти всегда изменяемы.
Чтобы распознать объект-значение, мысленно замените его на integer.
Объекты-значения не должны иметь собственной таблицы в БД.
Предпочитайте объекты-значения сущностям при моделивании домена.

Доменный объект - это объекты в объектно-ориентированных компьютерных программах, выражающие сущности из модели предметной области
Доменные объекты могут создаваться через фабрики, которые создают агрегаты.
Агрегат является самым сложным из всех тактических инструментов DDD. Агрегатом называется кластер из объектов сущностей или значений. То есть эти объекты рассматриваются как единое целое с точки зрения изменения данных.
Агрегаты сохраняются в репозиториях, которые представлены базами данных (неважно SQL или NO SQL)
Словарь – важный элемент DDD содержит основные определения и термины предметной области.
Основные принципы проектирования доменных моделей в функциональном стиле
- Модель иммутабельна и представлена через алгебраические типы данных (АТД)
- поведение модели реализуется через функции в модуле, где модуль представляет из себя блок бизнес логики
- поведение оперирует над АДТ

Далее в книге идет обзорное рассмотрение функциональной парадигмы.
В основе функционального программирования лежит функциональная композиция. Например, f(g(h)) – это функциональная композиция функций одной переменной. Идея в том, что целое состоит из взаимодействия частей.
Функции высшего порядка – такие функции, которые принимают в качестве аргументов другие функции. Частным примером является функция map которая применят к списку значений какую-либо функцию и возвращает список измененных значений. Такие функции называются «комбинаторы».
Сайд эффект – любые действия функции, которые меняют внешнее окружение.
Чистые функции – такие функции, которые не имеют сайд эффектов.
  • 👍 2
More from @softwareengineervlog
  1. Sep 3, 2026Google выпустила Gemini 3.8 Flash — новая быстрая модель уже обходит гигантов в кодинге. П…
  2. Sep 3, 2026Сейчас использую DeesSeek v4 Flash, на готовой кодовой базе решать стандартные таски из тр…
  3. Aug 6, 2026Полезное: разраб сделал интерактивный мануал, который по шагам показывает, что происходит…
  4. Aug 5, 2026Ты ненастоящий программист! Это происходит снова и снова, и каждый раз одинаково. Я начал…
  5. Jul 27, 2026Внимание, скам! Появился бот который выдает себя за бота моего канала. Я НИЧЕГО ЧЕРЕЗ БОТО…
  6. Jul 25, 2026У Сбера есть интересный whitepaper где он описывает технологию разработки продукта с помощ…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →