HyperLEDA / db-app

Backend for HyperLeda astronomical database of extragalactic objects
https://hyperleda.github.io/db-app/
MIT License
0 stars 0 forks source link

Передвинуть схему для экшнов и слоя данных в отдельные пакеты #197

Open Kraysent opened 2 weeks ago

Kraysent commented 2 weeks ago

Проблема

Сейчас модели для схемы API лежат в пакете actions: https://github.com/HyperLEDA/db-app/tree/7c5cf0b3432398c27a6e7c674ee3f5385dd0865c/app/domain/model

Это создаёт путаницу с тем, что является моделью слоя domain, а что - схемой интерфейса API.

Кроме того, это создаёт возможность циклических зависимостей, если domain хочет импортировать какой-то другой пакет, а этому пакету нужна схема API.

Предполагаемое решение

Нужно унести все модели API в отдельный пакет (например, app/schema) и при необходимости создавать свои версии этих моделей в слое бизнес-логики при необходиомости (они на самом деле уже частично есть).

Kraysent commented 2 weeks ago

И нужно аналогичное упражнение проделать с объектами для слоя данных - вынести их в отдельный пакет (app/entities?) и отличать от внутренних объектов слоя данных, нужных просто для обработки внутри слоя.