Commit aacda0a3 authored by Borodin Dmitriy's avatar Borodin Dmitriy

1. Add description fpr back-end;

parent aae0759c
......@@ -9,3 +9,39 @@
- **Insert** - Элемент который соответсвует схеме базы данных, но отсутствует в базе данных, преднаязначен только для записи в БД.
- **Persist** - Элемент данных хранящихся в базе данных.
- **Cache** - Производные данные от Persist(s) различных моделей, хранится в базе данных.
## Transport
Это абстракция над транспортным слоем.
**Может зависеть от моделей.**
**В зависимости от транспортного уровня может иметь или не иметь API.**
Например: если транспорт HTTP то API будет отсутствовать, так как сервису необходимо только обслуживать запросы клиента, в данном случае сервис будет зависеть от модели.
Например: если транспорт HTTP и сервис служит как точка интеграции с другой системой по протоколу HTTP, WS, или другому, то API будет реализовано для взаимодействия с удаленной системой.
Например: если транспорт Web Socket то API будет присутствовать, так как сервер по мимо того, что обслуживает запросы клиента, может отправить клиенту сообщение через метод send. В данном случае сервис может не зависеть от модели и существовать самостоятельно.
## Model
Класс реализующий требования бизнес логики. Может зависеть от сервисов. Может зависеть от репозиториев. `Циркулярные зависимости между моделями запрещены.`
**Модель может реализовать любую требуемую логику.**
Например: если модель реализует логику работы с коллекцией то она будет зависеть от репозитория, и возможно от других моделей.
Например: если модель реализует интеграционную логику, между несколькими моделями или удаленными сервисами то модель может зависеть от сервисов и других моделей.
## Repository
Класс реализующий абстракцию для работы с коллекцией.
Хранения данных коллекции может быть как в памяти так и в БД.
Можно реализовать репозитории под разные типы хранилищ.
Для тестирования приложения можно реализовать хранения в памяти, для рабочего проекта хранение в MongoDB или PostgreSQL.
`Не имеют зависимостей в системе.`
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment