Сегодня я расскажу как перестать обсуждать iOS архитектуру.
#день5из7
iOS Архитектура — это религия для разработчиков.
#день5из7
Религия — это миф о том как устроен мир
iOS Архитектура — это миф о том как должно быть устроено приложение
#день5из7
Какая религия "правильная"? Буддизм? MVP? Ислам? MVVM? Христианство? MVC?
Я считаю все религии полезны. Каждая учит как сделать мир (приложение) лучше.
#день5из7
Стоит ли изучать и практиковать разные архитектуры? Безусловно, это единственный способ достичь просветления в теме проектирования приложений.
#день5из7
Религия — это хорошее начало развития морального компаса
iOS Архитектура — это хорошее начало развития навыка проектирования приложения
#день5из7
Сила религии изменять мир вокруг зависит от количества последователей, если вашей архитектуре никто не следует, какая разница что вы считаете ее лучшей?
#день5из7
Не всем разработчика приходиться выбирать архитектуру, часто в команде уже есть критическая масса последователей. Возможность улучшать/менять архитектуру зависит исключительно от их толерантности к новым идеям.
#день5из7
Также под которую мы пишем платформа уже следует какой-то архитектуре "из коробки". С этой архитектурой идеей часто очень сложно бороться, и не всегда имеет смысл.
#день5из7
Вариант MVC от Apple это каменная табличка с 10 заповедями, которым нужно следовать, только их забыли написать, поэтому просто табличка.
#день5из7
В итоге iOS разработчики, предоставлены сами себе, начали смотреть по сторонам и перетягивать другие архитектуры из 3 букв из соседних цехов.
#день5из7
Добавляя новые буквы (и наделяя их сакральным смыслом) началась гонка вооружения MVP/MVVM/VIPER/SILVER/DISCOVER/PIDOR.
#день5из7
Где началось наше занимательное архитектурное путешествие?
На Apple's MVC.
А почему мы не говорим о том что было до этого? Разве раньше не было архитектурных проблем?
#день5из7
Откладываем архитектурные заметки с Medium в сторону и погружаемся в историю.
1979, Trygve Reenskaug опубликовал оригинальный доклад об MVC.
Если хотите понять где Apple сделала шаг не туда, читайте оригинал и делайте выводы сами. folk.uio.no/trygver/2007/M…
#день5из7
Очень сильная заметка-разбор оригинального MVC (не пропустите ссылку на вторую часть в конце текста)
habr.com/ru/post/321050…
#день5из7
Моя заметка показывающая как всякие ВИПЕРы не далеко-то убежали от MVC
badootech.badoo.com/do-mvc-like-it…
#день5из7
Но если бы Trygve не переименовал THING-MODEL-VIEW-EDITOR в MODEL-VIEW-CONTROLLER у нас бы сейчас был TMVE
#день5из7
Еще накину на Clean Swift Architecture(VIP)
Сверху Clean Architecture
Снизу Clean Swift Architecture
Не говоря уже о "Worker"
#день5из7
Оригинальный МVC подразумевал что Модель и Вид живут отдельно и их можно легко подменять. Но мало кто пишет UI независимый от Модели/Домена.
Если положить UI в отдельный фреймворк который не импортирует Модель/Домен. То его можно строить и тестировать отдельно. #день5из7
Share this Scrolly Tale with your friends.
A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.
