Similar presentations:
Состояние приложения: через вселенные
1.
Состояние приложения: через вселенныеБегунов Андрей / Руководитель разработки интерфейсного фреймворка
2.
Пример контрола: GridПоддержка источников данных, навигация(+виртуальная прокрутка), сортировка,
поддержка иерархии, выбор записей, группировка, редактирование по месту,
drag-n-drop, панель операций над записью(+ swipe), настройка заголовка
таблицы, режим поиска, работа с клавиатурой, темы оформления и т.д. и т.п.
3.
Timeline of JavaScript UI Frameworks4.
Single Page Application5.
Пример типового реестра6.
Давайте разбираться7.
Цикломатическая сложность8.
Чистые функции9.
Связность и зацепление10.
А судьи кто?11.
Any framework12.
Lifehack13.
Что не так с MVC?14.
15.
Diagram of interactions within the MVC pattern16.
MVC/Fluxaction
User
Controller
(dispatcher, action
creator, action)
send data
Model
(store, reducers)
.
display
View
(page, containers,
components)
receive data
17.
Типовые проблемы “MVC”?Controller
(state, business
logic)
User
Model
(state, business
logic)
.
View
(state, business
logic, ui logic
18.
Debug mode19.
Современный подходStore
Page
View
View
View
View
Dispatch
Action
Dispatch
Action
Dispatch
Action
Dispatch Dispatch
Action
Action
Dispatch
Action
Store
fragmen
Store
fragmen
Store
fragmen
Store
fragmen
Store
fragmen
20.
Как быть?Нет
21.
Увеличиваем связность, уменьшаем зацепление22.
Однонаправленный поток данныхInput
User
.
Domain model
Output
23.
Где состояние?24.
Особенности интерфейса СБИС25.
Проблемы глобального состояния*Глобальное состояние – singleton.
Компоненты могут иметь множество
экземпляров
Жизненный цикл состояния
отличается от жизненного
цикла компонентов
Может быть большим
26.
Компонентный подход27.
Prop drilling28.
Композиция и render props29.
Магия вне Хогвартса30.
Глобальные хранилищаИнформация о пользователе
Права
Локализация
Настройки приложения
Пользовательские параметры
31.
Я создал несколькоsingleton’ов для
хранения
глобального
состояния
Проблемы юнит-тестирования
singleton
С этим можно бороться.
Но как же ты
пишешь юнит
тесты?
32.
В заключениеТехнологии устаревают очень
быстро.
Не гонитесь за технологиями.
Изучайте фундаментальные
основы программирования.
Чаще задавайте вопросы в
стиле: «Как это работает?»,
набирайтесь опыта.
33.
Спасибо за внимание.Вопросы?
Бегунов Андрей
https://t.me/anbegunov