Основная цель этого RFC - дать рекоменации для пользователей tramvai, получить обратную связь, и в итоге собрать лучшие советы и практики для построения хорошей архитектуры и структуры tramvai приложений.
Также, этот RFC повлияет на изменения в базовой структуре шаблона tramvai new <appName>
приложения.
https://feature-sliced.design/
https://khalilstemmler.com/articles/client-side-architecture/introduction/
https://bespoyasov.ru/blog/clean-architecture-on-frontend/
https://herbertograca.com/2017/11/16/explicit-architecture-01-ddd-hexagonal-onion-clean-cqrs-how-i-put-it-all-together/
Про архитектуру написано множество книг, статей и мнений.
Большинство из них говорят о том, что хорошая архитектура упрощает развитие и поддержку приложения.
В эти понятия входит:
При этом очень важна наглядность архитектуры - этого можно достичь с помощью отражения архитектуры в структуре кода нашего приложения.
Также структура кода, и сущности этом в коде могут отражать предметную область приложения, что позволит говорит на одном языке с бизнесом, и легче переносить задачи в наш код.
Код, который легко менять и расширять - это модульный код, нацеленный на конкретную задачу. Под модульностью я понимаю слабую связность между кодом, который занят разными задачами.
Для явного выделения задач, которые решает конкретный модуль, в архитектуре выделяются границы между модулями, или определенные "слои" (layer), к которым могут относиться модули.