Изучение

Изучение Ark Data Layer

Архитектурные границы, контракты, наблюдаемое состояние и модель владения ark_data_layer.

v1.1.0Начальный уровень

Изучение Ark Data Layer

Ark Data Layer предоставляет механизмы для конкретных реализаций Repository. Пакет не переносит работу с хранилищем в домен и не превращает DataSourceContainer в общий Service Locator приложения.

Начните с задачи

Функция каталога может сначала прочитать кэш, затем обновить данные через API, преобразовать транспортные DTO в доменные сущности, синхронно предоставить последний доменный снимок и уведомить фоновых потребителей после успешной фиксации. Без чёткой границы сетевые модели проникают в бизнес-код, клиенты хранилищ превращаются в нетипизированный набор, а каждый Repository по-своему реализует наблюдение и завершение.

Ark Data Layer разделяет работу между тремя ролями:

text
реализация Remote / Cache / Database
        реализует узкий контракт DataSource
                         ↓
конкретный Repository координирует источники и преобразует данные
                         ↓ фиксация
доменный Data доступен синхронно и наблюдаем через Stream

DataSourceContainer принадлежит одному Repository или строго ограниченному компоненту Data-слоя. Это типизированная компоновка технических источников в конструкторе, а не замена DI приложения.

Что стандартизирует пакет

ЗадачаРешение пакетаРешение приложения
Поиск источникаТочное типизированное разрешение с ошибками отсутствия и неоднозначностиНабор контрактов источников
Текущие данныеОдно последнее зафиксированное значениеНеизменяемая доменная модель
НаблюдениеBroadcast Stream с повтором последнего значенияСостав подписчиков
ОбновлениеЯвная фиксация через setData или updateDataПреобразование, кэширование и политика конкуренции
ЗавершениеИдемпотентное закрытие RepositoryВладение и порядок закрытия общего графа

Рекомендуемый порядок

  1. Начало работы — небольшой, но полный Repository.
  2. Архитектура и границы — ответственность доменного слоя, слоя данных, приложения и композиции.
  3. Контракты DataSource — узкие технические контракты и строгое разрешение.
  4. Repository и доменный интерфейс — разделение базового класса и бизнес-абстракции.
  5. Наблюдаемые данные и жизненный цикл — повтор последнего значения, порядок доставки, закрытие и владение.

Для полного сценария откройте руководства, а для отдельной операции — рецепты.

Если требуется только вызвать один клиент и вернуть результат, базовый Repository может быть лишним. Ark Data Layer полезен, когда компонент владеет текущими доменными данными, координирует нетривиальные источники или нуждается в едином наблюдаемом жизненном цикле.