Всем привет! Появился неожиданный вопрос после того как завалил одно из собеседований. Интересно мнение профессионалов...
Начал разбираться с паттерном MVC и как он на самом деле представлен в битриксе. Мнений в сети много. В документации сказано, что данный паттерн реализован просто наилучшим образом (см. цитату Степана Овчинникова) https://dev.1c-bitrix.ru/learning/cour...ON_ID=2817. Но в реальной жизни соображения не всегда столь же радужные.
А путаница на самом деле дикая, начиная с первой же картинки той же документации. Казалось бы, почему контроллер (который является компонентом битрикса) вообще никак не взаимодействует с моделью, и почему это представление напрямую воздействует на модель? В моей голове рисовалась совсем иная картина. О том, что все данные от пользователя проходят через контроллер, отправляются в модель, возвращаются изменёнными и отображаются обратно в представление (как собственно оно и реализовано в Битриксе). Но покопавшись ещё немного, оказалось, что такая модель называется вовсе не MVC, а MVP ! https://ru.wikipedia.org/wiki/Model-Vi...-Presenter
А вот по MVC каких только стрелочек от одного блока к другому всюду ни нарисовано, и везде разные! Единой картинки нет. И всё же, если обратиться к википедии (будь она неладна), то получаем вот что: https://ru.wikipedia.org/wiki/Model-Vi...Controller - т.е. подразумевается, что после получения запроса от пользователя контроллер отправляет запрос в модель, данные изменяются, и МОДЕЛЬ НАПРЯМУЮ МЕНЯЕТ ПРЕДСТАВЛЕНИЕ! Позвольте, но это же совсем не то ,что мы имеем в битриксе! Только при Ajax бескомпозитной работе модель напрямую, без вызова компонента и без всякой инкапсуляции выдаст данные для последующего изменения представления. Но ведь это нестандарт, согласно теории битрикса!
Отсюда и вопрос. Уважаемые разработчики! Либо я (не побоюсь этого слова) балбес и ничего не понимаю в MVC, либо в битриксе реализован в основном паттерн MVP, а не MVC. И уж точно картинка из документации совершенно под него не подходит. Какие будут мнения на этот счет? (P.S. Ненормативная лексика будет нещадно баниться).
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».