Slide 1

Slide 1 text

Architecture overdose Цыганов Станислав

Slide 2

Slide 2 text

Про что будем говорить? Слишком много спорим Возможно упускаем самые важные моменты Что выбрать для следующего приложения? 2

Slide 3

Slide 3 text

I - Ответственности С большой силой приходит и большая ответственность 3

Slide 4

Slide 4 text

View 4

Slide 5

Slide 5 text

View Рендеринг модельных данных Управление сабвью Отправка эвентов 5

Slide 6

Slide 6 text

View Presenter Остальное беру на себя! 6

Slide 7

Slide 7 text

Представление View Presenter Подготовка данных Переходы Общение с BL View ViewModel Я сам! Сам разберешься 7

Slide 8

Slide 8 text

Presenter ViewModel ≈ Разные реализации - одинаковые ответственности Он мне никогда не нравился 8

Slide 9

Slide 9 text

View Presenter ViewModel Interactor Router Coordinator TableView Helpers 9

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

I - Ответственность Стремление к Единственной ответственности Важны договоренности в команде по каждому компоненту Не так важен выбор конкретной архитектуры 11

Slide 12

Slide 12 text

II – Направление 12 Если не знаешь, куда направляешься, вспомни, откуда идешь

Slide 13

Slide 13 text

Централизованная система Presenter Interactor View Router 13

Slide 14

Slide 14 text

Централизованная система Presenter Готовит данные Управляет флоу Знает о всех компонентах модуля Часто страдает лишним весом 14

Slide 15

Slide 15 text

Однонаправленные архитектуры View Presenter Interactor 15

Slide 16

Slide 16 text

Чище ответственности Явный флоу Чище интерфейсы Однонаправленные архитектуры View Presenter Interactor Плюсы 16

Slide 17

Slide 17 text

Однонаправленные архитектуры View Presenter View Presenter render(with: Model) 17

Slide 18

Slide 18 text

Однонаправленные архитектуры View Presenter Interactor Минусы Проксирование Невозможность ответить 18

Slide 19

Slide 19 text

Только для модуля? Flux Redux RxFeedback … Строгость флоу Читабельность … Явный стейт 19

Slide 20

Slide 20 text

Обязательно попробуйте оба подхода! Выберите одну из систем II – Направление

Slide 21

Slide 21 text

||| – Состояние 21 Состояние творит чудеса. Мысли лишь описывают чувства и ощущения от происходящего

Slide 22

Slide 22 text

Вопросы Что такое состояние? Где оно должно храниться? Чье состояние самое главное? 22

Slide 23

Slide 23 text

Что такое состояние? Значение переменных компонентов системы Текущее состояние влияет на результат Примеры: Хранилище Сервис View Storage (однонаправленный) 23

Slide 24

Slide 24 text

Источник правды Лежит в модуле P/VM Обновляем его при помощи сервисов Лежит отдельно от слоя представления Представление лишь реагирует на его изменение SOA Redux 24

Slide 25

Slide 25 text

Сравнение Независимость модулей Переиспользование компонентов архитектуры Полный контроль за состоянием Показываем ровно то, что храним Простая синхронизация стейта SOA Redux 25

Slide 26

Slide 26 text

Вместо итогов Разделение ответственности Договоритесь о них в команде! Выберите направление стрелочек Один главный Все равны, все участвуют Состояние Умные/тупые модули верхнего уровня VIPER!!!111!! 26