Forge
markdowndeeb25a2
1# Data Acquisition Layer Boundaries (v1)
2
3Статус: draft (рабочий канон до фиксации отдельным ADR).
4
5## Назначение
6
7`Data Acquisition Layer` (DAL) — слой внешних интерфейсов и адаптеров для вычислительных блоков кабины (CCU): входящий сбор/чтение и исходящая передача наружу.
8
9DAL отвечает за:
10
11- файловые операции (`File`, `Directory`, пути, проверка существования);
12- запуск внешних процессов и чтение их результата;
13- парсинг/сериализацию внешних форматов (`json`, `toml`, wire payload);
14- интеграционные резолверы и адаптеры источников.
15- исходящая передача наружу (запись, отправка, внешние вызовы) при необходимости фичи.
16
17## Границы с CCU
18
19`Cockpit/ComputingUnits/*`:
20
21- принимает уже подготовленные данные/снапшоты;
22- вычисляет смысловые DTO/снимки канала;
23- не выполняет внешние вызовы напрямую.
24
25Запрещено в CCU:
26
27- `File.*`, `Directory.*`, `FileInfo`, `DirectoryInfo`;
28- `Process` и запуск команд;
29- прямой HTTP/клиенты внешних API;
30- UI API.
31
32## Размещение кода
33
34- DAL: `Features/<Feature>/DataAcquisition/*`.
35- Application: `Features/<Feature>/Application/*`.
36- CCU: `Cockpit/ComputingUnits/*`.
37- UI orchestration: `ViewModels/*`.
38
39Разделение слоёв:
40
41- `DataAcquisition` — внешние адаптеры (I/O, process, wire, API).
42- `Application` — use-case подготовка/правила сценария без прямых внешних вызовов.
43 Для orchestration-классов — нейминг `*Orchestrator`.
44- `CCU` — вычислительный контур (смысловые DTO/снимки).
45
46## Пример (Launch)
47
48- DAL: `Features/Launch/DataAcquisition/LaunchProfilesStore.cs`, `LaunchSettingsJsonImport.cs`.
49- CCU: `Cockpit/ComputingUnits/Launch/LaunchPreResolvePipelineUnit.cs`, `LaunchReadinessUnit.cs`, `LaunchProfileProjectResolveUnit.cs`.
50
51## Эволюция
52
53Далее этот документ должен быть закреплён отдельным ADR про DAL и ссылками из ADR 0097/0095.
54
View only · write via MCP/CIDE