Глоссарий {domain}.{entity}.{action}
¶
1. Общие принципы формирования словаря¶
Общие принципы для каждого компонента:
{domain}
(Домен): Определяет широкую бизнес-область или функциональный сервис системы. Соответствует одному из ключевых сервисов, предоставляемых платформой.{entity}
(Сущность): Определяет основной объект, над которым выполняется действие внутри домена. Сущность должна быть существительным.{action}
(Действие): Определяет, что происходит с сущностью.- Для команд (commands) используется инфинитив или повелительное наклонение (например,
calculate
,solve
,process
), так как команда является приказом к выполнению действия. - Для событий (events) используется глагол в прошедшем времени (например,
calculated
,solved
,processed
,failed
), так как событие сообщает о факте, который уже произошел.
- Для команд (commands) используется инфинитив или повелительное наклонение (например,
2. Домены ({domain}
)¶
Домен определяет высокоуровневую бизнес-область или функциональную возможность системы.
Значение | Описание |
---|---|
system |
Системный домен. Связан с жизненным циклом, мониторингом и конфигурацией самой системы, а не с бизнес-логикой. |
geocoding |
Геокодирование. Преобразование текстовых адресов в географические координаты (прямое) и наоборот (обратное). |
geosearch |
Геопоиск. Поиск географических объектов, организаций, топонимов по текстовому запросу или координатам. В отличие от геокодинга, ориентирован на поиск, а не на точное преобразование. |
geosuggest |
Поисковые подсказки. Предоставление вариантов завершения адреса или названия объекта по мере ввода пользователем. |
geospatial |
Пространственные вычисления. Выполнение операций с геоданными, таких как проверка пересечения координат с полигонами, определение нахождения точки в зоне и т.п. |
isochrone |
Изохроны. Построение областей достижимости из заданной точки за определенное время или расстояние. |
distancematrix |
Матрицы расстояний. Расчет матриц времени и расстояний между множеством точек. Обычно это "тяжелые", ресурсоемкие задачи. |
routing |
Простая маршрутизация. Построение оптимального маршрута между двумя точками (A -> B). |
vrp |
Планирование маршрутов (VRP). Решение оптимизационной задачи маршрутизации для группы выездных сотрудников (Vehicle Routing Problem). |
enrichment |
Обогащение данных. Добавление к существующим гео-объектам дополнительных данных или метаданных из внешних или внутренних источников. |
mapdata |
Управление картографическими данными. Создание, редактирование и управление геослоями и другими картографическими элементами (например, базовыми картами, стилями). |
notification |
Нотификации. Отправка технических или бизнес-уведомлений пользователям или во внешние системы. Не путать с бизнес-событиями (events ). |
3. Сущности ({entity}
)¶
Сущность — это основной объект, над которым выполняется действие в рамках домена. Сущность не должна дублировать домен.
Значение | Описание | Применимые домены |
---|---|---|
address |
Адрес. Сущность, представляющая структурированный или неструктурированный адрес для прямого геокодирования. | geocoding |
coordinates |
Координаты. Сущность, представляющая географические координаты (широта, долгота) для обратного геокодирования. | geocoding |
query |
Запрос. Сущность, представляющая поисковый запрос в свободной форме. | geosuggest , geosearch |
calculation |
Задача на расчет. Детерминированная задача, имеющая однозначный результат на основе входных данных (например, построение изохроны, маршрута, определение пересечения с полигоном). | isochrone , routing , geospatial |
job |
Пакетная задача. "Тяжелая" или долго выполняющаяся задача по обработке большого объема данных, например, построение матрицы расстояний для 1000x1000 точек. | distancematrix |
solution |
Задача на оптимизацию. Сложная задача, требующая поиска оптимального решения из множества возможных вариантов (например, VRP). | vrp |
route |
Маршрут. Сущность, представляющая результат построения маршрута. | routing |
geolayer |
Геослой. Сущность, представляющая собой набор сгруппированных географических объектов (точек, линий, полигонов), управляемых как единое целое. | mapdata |
grid |
Опорная сетка. Сущность, представляющая собой набор предварительно рассчитанных точек, используемых для оптимизации, анализа или индексации в других сервисах (например, в VRP). | mapdata |
geodata |
Геоданные. Обобщенная сущность для геоданных (объект, полигон, точка), когда требуется обогащение или CRUD-операции. | enrichment |
metadata |
Метаданные. Сущность для управления мета-информацией, привязанной к гео-объектам. | enrichment |
message |
Сообщение. Сущность, представляющая сообщение для отправки (email, SMS, push). | notification |
configuration |
Конфигурация. Параметры конфигурации сервиса или системы в целом. | system |
4. Действия ({action}
)¶
{action}
— это:
- Для команд (commands): используется глагол в повелительном наклонении. Команда — это приказ.
- Для событий (events): используется причастие прошедшего времени (Past Participle). Событие — это свершившийся факт.
Значение | Тип | Принцип выбора | Описание | Примеры использования ({domain}.{entity}.{action} ) |
---|---|---|---|---|
process |
Команда | Преобразование | Запустить стандартизированный процесс преобразования данных из одного формата в другой (например, геокодирование). | geocoding.address.process , geosearch.query.process |
processed |
Событие | Факт того, что данные были успешно преобразованы. | geocoding.address.processed , geosearch.query.processed |
|
calculate |
Команда | Детерминированный расчет | Запустить детерминированный расчет, который всегда дает одинаковый результат для одинаковых входных данных (построить изохрону, матрицу, маршрут). | isochrone.calculation.calculate , routing.calculation.calculate |
calculated |
Событие | Факт того, что результат успешно вычислен. | isochrone.calculation.calculated , routing.calculation.calculated |
|
solve |
Команда | Оптимизация / Пакетная задача | Запустить решение сложной оптимизационной или ресурсоемкой пакетной задачи, которая может иметь несколько вариантов решения или требовать итеративного подхода. | vrp.solution.solve , distancematrix.job.solve |
solved |
Событие | Факт того, что задача успешно решена. | vrp.solution.solved , distancematrix.job.solved |
|
enrich |
Команда | Обогащение | Запустить процесс обогащения сущности дополнительными данными. | enrichment.geodata.enrich |
enriched |
Событие | Факт того, что сущность была успешно обогащена. | enrichment.geodata.enriched |
|
notify |
Команда | Внешнее уведомление | Отправить уведомление по внешнему каналу: email, push, telegram и т.д. (не по Kafka). | notification.message.notify |
notified |
Событие | Факт того, что уведомление было успешно отправлено. | notification.message.notified |
|
create |
Команда | CRUD: Создание | Создать новую долгоживущую сущность (например, метаданные для гео-объекта). | enrichment.metadata.create , mapdata.geolayer.create |
created |
Событие | Факт того, что сущность была успешно создана. | enrichment.metadata.created , mapdata.geolayer.created |
|
update |
Команда | CRUD: Изменение | Обновить существующую долгоживущую сущность. | system.configuration.update , mapdata.geolayer.update |
updated |
Событие | Факт того, что сущность была успешно обновлена. | system.configuration.updated , mapdata.geolayer.updated |
|
delete |
Команда | CRUD: Удаление | Удалить долгоживущую сущность. | enrichment.metadata.delete , mapdata.geolayer.delete |
deleted |
Событие | Факт того, что сущность была успешно удалена. | enrichment.metadata.deleted , mapdata.geolayer.deleted |
|
add |
Команда | Добавление в коллекцию | Добавить новые элементы к существующей сущности-коллекции, не изменяя существующие. | mapdata.grid.add |
added |
Событие | Факт того, что новые элементы были успешно добавлены. | mapdata.grid.added |
|
publish |
Команда | Публикация | Опубликовать сущность, сделав ее доступной для использования. | mapdata.geolayer.publish |
published |
Событие | Факт того, что сущность была успешно опубликована. | mapdata.geolayer.published |
|
changed |
Событие | Консолидация событий | Универсальное событие. Факт того, что состояние сущности изменилось. Используется для консолидации событий жизненного цикла (created , updated , deleted ) в один топик. |
mapdata.geolayer.changed |
accepted |
Событие | Быстрое подтверждение | Универсальное событие. Команда получена системой и принята в обработку. Отправляется как можно быстрее для асинхронного подтверждения. | vrp.solution.accepted , isochrone.calculation.accepted |
failed |
Событие | Невосстановимая ошибка | Универсальное событие. При обработке команды произошла невосстановимая ошибка. | vrp.solution.failed , isochrone.calculation.failed |
Примечание: plan
/planned
можно считать синонимами calculate
/calculated
для домена routing
. Для простоты лучше использовать один унифицированный глагол (calculate
), если бизнес-логика не требует их разделения.