Изучение
Изучение Ark Data Layer
Архитектурные границы, контракты, наблюдаемое состояние и модель владения ark_data_layer.
Изучение Ark Data Layer
Ark Data Layer предоставляет механизмы для конкретных реализаций Repository. Пакет не переносит работу с хранилищем в домен и не превращает DataSourceContainer в общий Service Locator приложения.
Начните с задачи
Функция каталога может сначала прочитать кэш, затем обновить данные через API, преобразовать транспортные DTO в доменные сущности, синхронно предоставить последний доменный снимок и уведомить фоновых потребителей после успешной фиксации. Без чёткой границы сетевые модели проникают в бизнес-код, клиенты хранилищ превращаются в нетипизированный набор, а каждый Repository по-своему реализует наблюдение и завершение.
Ark Data Layer разделяет работу между тремя ролями:
реализация Remote / Cache / Database
реализует узкий контракт DataSource
↓
конкретный Repository координирует источники и преобразует данные
↓ фиксация
доменный Data доступен синхронно и наблюдаем через Stream
DataSourceContainer принадлежит одному Repository или строго ограниченному компоненту Data-слоя. Это типизированная компоновка технических источников в конструкторе, а не замена DI приложения.
Что стандартизирует пакет
| Задача | Решение пакета | Решение приложения |
|---|---|---|
| Поиск источника | Точное типизированное разрешение с ошибками отсутствия и неоднозначности | Набор контрактов источников |
| Текущие данные | Одно последнее зафиксированное значение | Неизменяемая доменная модель |
| Наблюдение | Broadcast Stream с повтором последнего значения | Состав подписчиков |
| Обновление | Явная фиксация через setData или updateData | Преобразование, кэширование и политика конкуренции |
| Завершение | Идемпотентное закрытие Repository | Владение и порядок закрытия общего графа |
Рекомендуемый порядок
- Начало работы — небольшой, но полный Repository.
- Архитектура и границы — ответственность доменного слоя, слоя данных, приложения и композиции.
- Контракты DataSource — узкие технические контракты и строгое разрешение.
- Repository и доменный интерфейс — разделение базового класса и бизнес-абстракции.
- Наблюдаемые данные и жизненный цикл — повтор последнего значения, порядок доставки, закрытие и владение.
Для полного сценария откройте руководства, а для отдельной операции — рецепты.
Если требуется только вызвать один клиент и вернуть результат, базовый Repository может быть лишним. Ark Data Layer полезен, когда компонент владеет текущими доменными данными, координирует нетривиальные источники или нуждается в едином наблюдаемом жизненном цикле.