Структура приложения

Наша команда разрабатывает веб-приложение. К моменту запуска это будет сайт, в дальнейшем мы планируем дополнительно выйти на десктоп и мобилки

Приложение пишется на C# ASP.NET Core (проект API), запускается на сервере под управлением CentOS 7. База данный - MySQL

Приложение имеет 3 глобальных раздела:
Controllers
Data
Classes

Подробнее о Data:

Здесь описаны все классы, содержащие информацию о пользователях. Структура данного раздела продублирована в БД (за это огромное спасибо Entity Framework). Присутствуют как связи 1 к 1, так и 1 ко многим

Подробнее о Controllers:

В данном разделе описаны все API, доступные для вызова из вне. В каждом контроллере описаны дополнительно классы Request и Response - соответственно содержащие список данных, необходимых для запроса, и список возвращаемых данных.

Данный раздел разбит на отдельные под-разделы: раздел работы с пользовательскими данными, раздел работы с корзиной, раздел работы с доставкой, раздел работы с eBay и так далее

В некоторых простых контроллерах вся логика заключена прямо в контроллере (к примеру, контроллер, обновляющий профиль пользователя), в более сложных контроллерах сама логика вынесена в раздел Classes, а контроллер лишь проверяет, чтобы запрос был не пустым и вызывает нужный метод

Подробнее о Classes:

В данном разделе описаны классы, которые внешним пользователям не должны быть видны. Здесь описаны классы шифрования и дешифровки данных, классы работы со сторонними сервисами (доставка, eBay). Раздел имеет древовидную структуру: отдельные разделы под сторонние сервисы, если те разделены (как тот же eBay), раздел ещё делится

Собственно, вопрос:
Насколько правильно идёт разделение структуры приложения? Не приведёт ли такой подход в итоге к огромному спагетти-коду?


Ответы (0 шт):