Структура приложения
Наша команда разрабатывает веб-приложение. К моменту запуска это будет сайт, в дальнейшем мы планируем дополнительно выйти на десктоп и мобилки
Приложение пишется на 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), раздел ещё делится
Собственно, вопрос:
Насколько правильно идёт разделение структуры приложения? Не приведёт ли такой подход в итоге к огромному спагетти-коду?