@topuserman

Что такое mvc-паттерн на самом деле?

Веб-разработкой занимаюсь более 8 лет, из которых 5 лет коммерческий опыт.
Из-за специфики отрасли в которой работаю (cms на букву Б), не приходилось сталкиваться с mvc-паттерном.

Было много попыток разобраться с этим, прочитал тонны однотипных статей, где всю суть паттерна описывают подобной схемой:
01cc4f3f2646eaea356bc50dccce40d6.png
но ничего не понятно.
Хочу разобраться, какие сущности, куда выносим, для чего и т.д. , желательно на разных примерах.

В каких-то статья упоминаются разные архитектуры слоев на подобии:
controller-service-repository
repository-service-controller-view
и т.д..

но что это такое вообще, как используется, какие еще бывают типы, какие решают проблемы не описано.

Пробовал изучать примеры кода на github.
также много вопросов.
Глядя на файловую структуру проектов, вижу одни и те же папки:
repositories
services
views
controllers
entities
и т.д.


также непонятно, какие сущности в них хранятся, по какой логике происходит разделение сущностей и какие у них связи, и самое главное ? Какую проблему каждая решает ?

Подскажите пожалуйста, как мне разобраться в этом ? что почитать ?
  • Вопрос задан
  • 270 просмотров
Пригласить эксперта
Ответы на вопрос 3
php666
@php666
PHP-макака
Поставь на базе фреймворка Laravel это решение - laravel-boilerplate.com
Это каркас приложения с некоторым готовыми модулями, легче понимать будет по уже написанному коду модулей. У нас коллеги, которые с Битриксом всю жизнь работали и про MVC ничего не знали, за неделю принцип поняли, опираясь на примеры кода.

Что бы понимать MVC, надо понимать суть ООП. Для понимания сути ООП надо читать соответсвующую литературу. Это важно. Нужно научиться мыслить объектами, забыть как страшный сон всё, что ты знал до этого и заново учиться писать код.

Что бы понимать, что такое разделение системы на слои, надо читать это (начни сразу с части 1, главы 1).

Ну и на, мою статью на более "человеческом" варианте понимания МВС.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Проще всего объяснить это на примере функции:
1. Параметры - это контроллер.
2. Тело функции - это модель.
3. Результат (возвращаемый в место вызова) - это view.

MVC - это тоже самое, но другое название для другой сложности логики.
Ответ написан
Model - это БД, возможно с проверками валидности.
Controller - это API + частично фронтенд, который с этим API взаимодействуйет.
View - это то, что видит юзер.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы