Дизайн презентационного слоя

Антон Бевзюк (DODO Pizza)

О чем будем говорить

Типичные болезни GUI

  1. Нарушение SRP, слишком много ответственностей
    • Разметка экрана
    • Поведение (реакция на действия пользователя)
    • Ввод данных
    • Представление данных
    • Получение данных
    • События
  2. Сложность тестирования
  3. Сложность переиспользования / портирования

Что же делать?

Разделять!

Тестировать!

Паттерны Presentation

Passive View

Model View ViewModel

RED / GREEN / REFACTOR

=> Подумай, напиши тест

Скомпилируй

Исправь ошибки

Запусти все тесты и убедись, что они прошли

Запусти все тесты и убедись, что они упали

Рефакторинг

Запусти все тесты и убедись, что они прошли

Напиши код

Demo

Чего мы добились?

Контрольные вопросы

  1. Типичные проблемы с GUI (ответственности, тестирование, переносимость).
  2. Диаграмма Passive View. Ответственности слоев.
  3. Назначение и преимущества применения Passive View.
  4. Диаграмма MVVM. Ответственности слоев.
  5. Назначение и преимущества применения MVVM.

Спасибо за внимание!

Антон Бевзюк