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
Однонаправленные
архитектуры
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