(Анонс) MVC с легким ароматом анти-паттерна

(

«Я использую MVC с тех пор, как начал структурировать мой код много лет назад. Я так долго использовал его, что теперь даже не представляю иного способа структурировать свой код, а все проекты, в которых я участвовал так же были построены на MVC».

Такой вопрос я прочитал на одном из зарубежных форумов. И хоть это вопрос одного человека — как же сильно он передает боль всех, кто когда либо ступил на тропу разработки приложений для iOS. И самое страшное в этом вопросе именно то, что далеко не все осознают, насколько MVC проникает в сознание, насколько сильно Model-View-Controller закрывает собой кругозор и ограничивает, если позволите, развитие. Крайний случай, когда Model-View-Controller превращается в Massive-View-Controller, но никаких подозрений у программиста не вызывает.

Так а что плохого в MVC?

В самом паттерне нет ничего плохого, если вы пишете приложение с 3-5 экранами. Но анти-паттерном, собственно как и в случае с Singleton, отчасти его делает догматизм.

MVC, как фундамент, описан в КАЖДОЙ статье и книге, его же пропагандирует Apple. А как же начинающему программисту писать на VIPER или даже на своей собственной архитектуре (да-да, никто не запрещает писать свою), если с самого старта обучения MVC вбивается в подсознание, как единая истинна. И дальше уже срабатывает стандартное человеческое сознание — трудная восприимчивость ко всему новому.

Так же, применение MVC очень часто приводит к «ожирению» контроллера, и вместо 100-200 строк кода, мы видим 1000+. Он очень запутан и делает отвечает за все, что должна делать сцена. От этого катастрофически снижается тестируемость кода. Да и взаимодействие между разными сценами, построенными на MVC хоть и не так сложна для большинства его приверженцев, однако остается, наверное, самой сложной среди альтернатив.

И что теперь делать?

Нет, я не хочу сказать, что MVC — это абсолютное зло. Им можно и нужно пользоваться. Но из рядов основных технологий его нужно смещать в ряды вспомогательных.

Писать на MVC свои UI компоненты — великолепный выбор. Писать на MVС целое приложение — подумайте трижды. Я почти уверен, что большинство из вас и не задумывалось над тем, насколько удобно писать UI компоненты на MVC — вам все карты в руки — это великолепно!

И кстати — читая эту статью, вы могли подумать о том, что я начну пропагандировать MVP, MVVM, как альтернативу. Ничего подобного! Эти архитектуры — всего лишь иной способ реализации общей концепции MVC.

анонс

Как вы могли заметить, эта статья сугубо теоретическая. На самом деле у меня накопилось множество материала на эту тему, и я хочу его изложить и обязательно изложу, но в другой форме. В конце ноября-начале декабря мы проведем серию открытых скринкастов, посвященных архитектурным паттернам и не только. Участие абсолютно свободное для всех наших подписчиков!

В трансляциях я расскажу о разнообразных паттернах, их вариациях и об их применении на практике. Будет интересно!

Детальная информация, а также ссылка на трансляцию будут размещены на всех наших ресурсах. Подписывайся что бы не пропустить!

Поддержите ресурс blog.justDev:

Сведения об авторе

Игорь Малеваный

Добавить комментарий

Instagram

Поддержите ресурс blog.justDev:

Свежие записи

Рубрики