Расширенная MVC архитектура программы

от автора

MVC паттерн давно уже на рынке, но многие его используют по разному.

С опытом разработки мы увидели, что очень удобно разделить MVC таким образом:

M = SOA
V = templating, head, footer-scripts, parts
C = Routing + easy code and business logic

Почему Model — это SOA. По сути модель многие понимают как работу с данными и получается каждая обработка данных — это некий внутренний сервис. Желательно, что бы они были НЕ связаны сильно и код можно было легко расширять.

View в веб-разработке часто несёт в себе заголовки head и скрипты, которые не являются уже внешним видом, а несут отдельный смысл. Лучше их переносить в отдельные файлы. Также View-ки должны легко делится на части для простоты масштабирования проекта

Controller — это основной элемент всей связки. В нем происходит распределение реакций на запросы клиента. И часто на первом этапе это распределение выполняет Rotuting, а уже потом в методе контроллера собираются все нужные данные и помещаются во View.

Мы считаем такую архитектуру оптимальной. Каждое направление может использовать ООП, наследовать абстрактные классы и усложнятся, но важно соблюдать границы, что бы код легко расширялся и был удобный для коллективной работы.

Многие фреймворки поддерживают такую архитектуру и многие аккуратные разработчики приблизительно так и строят программы.

Если же в коде обсуждаемые выше элементы перепутаны, то мы рекомендуем как можно скорее сделать рефакторинг и процесс разработки после этого может значительно ускорится.

Спасибо за внимание.

Если кто знает другие хорошие варианты архитектуры, напишите пожалуйста в комментах ваши мнения, спасибо.

ссылка на оригинал статьи https://habrahabr.ru/post/283096/