2021-11-24 07:52:27 +00:00
|
|
|
|
## Структура проекта
|
|
|
|
|
|
2022-01-08 12:20:08 +00:00
|
|
|
|
* **Features** - набор **законченных** фич проекта. Считается, что любая фича, находящаяся в мастере может быть добавлена в
|
2022-05-21 08:48:53 +00:00
|
|
|
|
клиент и использована в нем. Исключением является `common` - это набор вещей, используемых везде.
|
|
|
|
|
* Части, на которые *обычно* разделяется фича
|
|
|
|
|
* Common - общая для фичи часть. Тут, как правило, хранятся конвенции путей для сетевых соединений, общие типы и пр.
|
|
|
|
|
* Server - часть, включаемая в сервер для подключения фичи. Обычно содержит работу с бд, определение модулей сервера и пр.
|
|
|
|
|
* Client - часть с клиентским кодом. В большинстве своём включает работу с сервером, MVVM часть (View при этом должны
|
|
|
|
|
находиться в платформенной части, если их нельзя вынести в сommon часть клиента)
|
|
|
|
|
* Также существует фича `client`, которая не является фичей самой по-себе. Фактически, это набор разных фич, который системно
|
|
|
|
|
отсутствуют в бэке и используются в основном для пробрасывания удобных `API` и `View` для клиента
|
2022-01-08 12:20:08 +00:00
|
|
|
|
* **Services** - модули, отвечающие за клиент-серверную работу фич с точки зрения их взаимодействия. Например, в рамках сервисов
|
|
|
|
|
должен быть добавлен модуль для постов - именно через сервисы будет происходить создание поста, его редактирование и удаление
|
|
|
|
|
* **Client** - итоговый клиент. На момент написания этой доки (`Пн окт 25 12:56:41 +06 2021`) предполагается два варианта:
|
2021-11-28 11:48:51 +00:00
|
|
|
|
* Мультиплатформенный проект со сборкой каждого таргета. Скорее всего, не будет использован в силу сложности настройки
|
2021-11-24 07:52:27 +00:00
|
|
|
|
части клиентов (например, андроид)
|
|
|
|
|
* Мультимодульный проект
|
2022-01-08 12:20:08 +00:00
|
|
|
|
* **Server** - пока что JVM-only модуль, включающий все необходимые для сервера фичи
|