Как я перестал беспокоиться и полюбил redux

17
Как я перестал беспокоиться и полюбил Redux Витя Суздалев #FrontendMeetup 14.11.2015

Upload: it61

Post on 09-Apr-2017

367 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Как я перестал беспокоиться и полюбил Redux

Как я перестал беспокоиться и полюбил Redux

Витя Суздалев

#FrontendMeetup

14.11.2015

Page 2: Как я перестал беспокоиться и полюбил Redux

Витя Суздалев

Разработчик ficus.io

Главред Code Hipsters

Full-stack JavaScript freelancer

Page 3: Как я перестал беспокоиться и полюбил Redux

Проблемы с фронтендом

• Сложные потоки данных и зависимости компонентов

• JavaScript на мобильных устройствах

• Серверный рендеринг

• Принципиально нетестируемый код

Page 4: Как я перестал беспокоиться и полюбил Redux
Page 5: Как я перестал беспокоиться и полюбил Redux
Page 6: Как я перестал беспокоиться и полюбил Redux

Redux

• «Predictable state container for JavaScript apps»

• 2kb чистого функционального счастья

• Не haskell-like функционального

• С горячей перезагрузкой и time traveling debug

Page 7: Как я перестал беспокоиться и полюбил Redux
Page 8: Как я перестал беспокоиться и полюбил Redux
Page 9: Как я перестал беспокоиться и полюбил Redux

Демоhttps://jsbin.com/babuwu/edit?js,output

Page 10: Как я перестал беспокоиться и полюбил Redux

Банальный дискомфорт

• Сложить все в один объект?

• Прокидывать все состояние через иерархию компонентов?

• А как делать запросы к api?

Page 11: Как я перестал беспокоиться и полюбил Redux

–redux docs

“Middleware provides an extension point between dispatching an action and reducer.”

Page 12: Как я перестал беспокоиться и полюбил Redux

Пример: логгирование

Page 13: Как я перестал беспокоиться и полюбил Redux

Пример: промис

Page 14: Как я перестал беспокоиться и полюбил Redux

Проблемы?

• Страшно класть состояние в один объект

• Состояние распространяется через компоненты

• Сайд-эффекты делаются очень непривычно

Page 15: Как я перестал беспокоиться и полюбил Redux

Польза?• Приложение управляется чистыми функциями

• Легко тестировать

• Можно тестировать

• Работает горячая перезагрузка — быстрая обратная связь в разработке

• Экшены можно проиграть повторно — легко воспроизводить проблемы

• Космические дев-утилиты

Page 16: Как я перестал беспокоиться и полюбил Redux
Page 17: Как я перестал беспокоиться и полюбил Redux

Как я рад, что вы пришли!С вами был Витя Суздалев

• ficus.io

• vk.com/codehipsters

• vk: victor.suzdalev

• twitter: @victor_suzdalev

• github: @kadmil