SlideShare uma empresa Scribd logo
1 de 83
Baixar para ler offline
redux: the best
for isomorphic apps
Денис Измайлов
Startup Makers 24 сентября 2015
Почему так?
2
Как это связано?
3
redux — очередной
Flux?
4
Вспомним Flux
5
Проблема масштабирования MVC
30 апреля 2014, Сан-Франциско
F8 Facebook Developer Conference
6
30 апреля 2014, Сан-Франциско
F8 Facebook Developer Conference
7
Command-Query
Responsibility
Segregation
CQRS
8
CQRS
Command-Query Responsibility Segregation
модель

для чтения

и записи
9
CQRS
Command-Query Responsibility Segregation
модель

для чтения

и записи
модель для чтения

данных
10
CQRS
Command-Query Responsibility Segregation
модель для чтения

данных
модель

для чтения

и записи
модель для записи

данных
11
30 апреля 2014, Сан-Франциско
F8 Facebook Developer Conference
модель для чтения
12
30 апреля 2014, Сан-Франциско
F8 Facebook Developer Conference
модель для чтения
модель для записи
13
Основные цели
1.Один источник правды
2.Избежать состояние гонки
3.Избежать каскадных обновлений
4.Воспроизводимость состояния
14
Основные цели
Воспроизводимость состояния
15
Основные цели
Воспроизводимость состояния
state Bstate A
16
Основные цели
Воспроизводимость состояния
state Bstate A
state Bstate A
17
Основные цели
Воспроизводимость состояния
error statestate A
error statestate A
Record / Replay
18
2014 - клонировали, как могли
• 12 мая: Fluxxor
• 1 июля: Reflux.js
• 24 июля: официальный релиз от Facebook
• 24 октября: Flummox
• 2 ноября: Marty.js
• 4 ноября: Yahoo выпускает Fluxible
• 11 декабря: AirBnb выпускает alt
19
Мир на пороге новых проблем:
Flux
• Какие плюсы и минусы?
• Что выбрать из этого?
• Как с этим жить?
20
Изоморфные
приложения
21
Организация изоморфных приложений
API
Browser-
specific JS
Server-specific
JS
Ваше
приложение
22
Организация изоморфных приложений
Browser-
specific JS
Server-specific
JS
Бизнес-логика
Routes

Модели
Схемы
Валидация
i18n
Конфигурация
Компоненты
Стилизация
и т.д
23
Server-Side Rendering

(SSR)
Генерация отображения
на стороне сервера
24
Взаимодействие
API
сервер
Front-end

сервер
25
Взаимодействие
API
сервер
Front-end

сервер
Браузер
26
Взаимодействие
API
сервер
Front-end

сервер
Браузер
27
Взаимодействие
API
сервер
Front-end

сервер
Браузер
- HTML
- критичный CSS
28
Взаимодействие
API
сервер
Front-end

сервер
Браузер
- HTML
- критичный CSS
- JavaScript
29
Взаимодействие
API
сервер
Front-end

сервер
Front-end
клиент
- HTML
- критичный CSS
- JavaScript
30
Выгоды
• Время загрузки страницы сокращается в 5-6 раз
• Снижаются затраты на поддержку
• Быстрый старт новых проектов
• Положительный эффект для SEO
• Снижает риск проблем memory leak
• Write once, run anywhere (WORA)
31
Промежуточный итог
• Flux — архитектура для создания клиентских
приложений
• Flux — больше шаблон, чем формальный фреймворк
• Flux создан сделать приложение более
масштабируемым, предсказуемым, а отладку - простой
• Изоморфные приложения повышают UX и снижают
затраты
32
Так ли хорош Flux?
33
Проблемы реализаций Flux
• Обилие boilerplate-кода
• Заточенность кода под API
• Логика сторов связана с их состоянием











34
Пара примеров с alt.js
35
Создание сторов
36
Создание сторов
полезная часть
37
Создание компонент
38
Создание компонент
бесполезная

часть
39
Проблемы реализаций Flux
• Обилие boilerplate-кода
• Заточенность кода под API
• Логика сторов связана с их состоянием
• Сложно сделать record/replay состояний







40
Проблемы реализаций Flux
• Обилие boilerplate-кода
• Заточенность кода под API
• Логика сторов связана с их состоянием
• Сложно сделать record/replay состояний
• Сложная для понимания роль диспетчера



41
Проблемы диспетчера Flux
Store 2
Диспетчер
Component 3
Action 1
42
Проблемы диспетчера Flux
Store 2
Диспетчер
Action 1
Component 3
Action 1
43
Проблемы диспетчера Flux
Store 2
Диспетчер
Action 1
Component 3
Action 1
Uncaught Error: Invariant Violation:
Dispatch.dispatch(...): Cannot dispatch in
the middle of a dispatch.
44
Проблемы диспетчера Flux
https://github.com/facebook/flux/issues/47
45
Проблемы реализаций Flux
• Обилие boilerplate-кода
• Заточенность кода под API
• Логика сторов связана с их состоянием
• Сложно сделать record/replay состояний
• Сложная для понимания роль диспетчера
• Проблема повторного использования
46
Проблемы Flux
при Server-Side Rendering
• Сложно реализовать асинхронную загрузку данных
• Передача состояния сторов от сервера клиенту
• Flux изначально создавался для клиентской части:



“Flux is the application architecture that Facebook
uses for building client-side web applications.”

~ https://facebook.github.io/flux/



- OK
47
Все эти проблемы
решает redux
48
Обновление
архитектуры
49
Сторы — не классы
А функции описывающие мутации:
50
Раз это функции…
51
Сторы переименованы в
reducers
52
Где же теперь state?
53
State хранится в
Диспетчере
54
Диспетчера больше
нет
55
Диспетчер
переименован в Store
56
Это всё?
57
Нет
58
Middleware
59
Middleware
• Точка расширения, куда передаётся action, прежде, чем
попасть в reducers
• Функция, принимающая action, следующий middleware и Store:











60
Middleware
Этот middleware позволяет диспатчить

в качестве action обычный Promise
61
View Provider
62
react-redux
• connect()
• <Provider />
63
react-redux: connect()
• Подключает к компоненту Store
• Возвращает новый компонент, который содержит
переданный компонент, как вложенный
• Ему в свойствах будут переданы подключенный
Store и функция dispatch
64
react-redux: connect()
65
react-redux: <Provider />
• Главный компонент
• Делает доступным вызов connect() для всех
дочерних элементов
66
Схема архитектура
67
Подводим итоги
• Нет boilerplate кода, за счёт того, что мутации описываются функциями
• Как следствие - нет зависимости от API, его по сути нет
• При таком подходе легко сделать record/replay
• Нет диспетчера - нет проблемы его понимания
• Легкое повторное использование reducers, пример:

https://github.com/rackt/redux/blob/master/examples/real-world/reducers/
paginate.js
• За счёт middleware легко организовать асинхронную загрузку данных
для компонент:

https://github.com/DenisIzmaylov/redux-catch-promise
68
69
Как начать?
Подробнейшая документация

(ссылка в конце)
70
Экосистема
Redux DevTools
• Live Edit
• Time-Travel
72
Redux Slider Monitor
• Time-Travel через

слайдер
73
Redux GenTest Plugin
74
И ещё море всего
https://github.com/xgrommx/awesome-redux
75
Метрики в GitHub
Redux
Flux
76
Импортозамещение
Из России с любовью:
Даня Абрамов
Санкт-Петербург
77
Отзывы
• “Love what you’re doing with Redux”

Jing Chen, creator of Flux



• “I asked for comments on Redux in FB's internal JS
discussion group, and it was universally praised. Really
awesome work.”

Bill Fisher, creator of Flux
Facebook в восторге
78
redux - очередной Flux?
Нет
79
redux - the best for isomorphic
apps?

Да
80
Полезные ссылки
• http://elm-lang.org/
• http://staltz.com/unidirectional-user-interface-
architectures.html
• http://martinfowler.com/bliki/CQRS.html
81
Документация
http://rackt.github.io/redux/
82
Вопросы?
Twitter: @DenisIzmaylov
GitHub: https://github.com/DenisIzmaylov
Facebook: http://fb.com/denis.izmaylov
83

Mais conteúdo relacionado

Mais procurados

Redux и изоморфные приложения
Redux и изоморфные приложенияRedux и изоморфные приложения
Redux и изоморфные приложенияJohn Wezel
 
#5 "React.js" Антон Артамонов
#5 "React.js" Антон Артамонов#5 "React.js" Антон Артамонов
#5 "React.js" Антон АртамоновJSib
 
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...Омские ИТ-субботники
 
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Изоморфные React-приложения производительность и масштабирование / Денис Изма...Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Изоморфные React-приложения производительность и масштабирование / Денис Изма...Ontico
 
Современный фронтенд -- как не утонуть в море хайпа?
Современный фронтенд -- как не утонуть в море хайпа?Современный фронтенд -- как не утонуть в море хайпа?
Современный фронтенд -- как не утонуть в море хайпа?Vladimir Malyk
 
Delivering Native User Experience In Client Side Java Applications
Delivering Native User Experience In Client Side Java ApplicationsDelivering Native User Experience In Client Side Java Applications
Delivering Native User Experience In Client Side Java ApplicationsNikita Lipsky
 
Сергей Морковкин "Разработка realtime SPA с использованием VueJS и RethinkDB"
Сергей Морковкин "Разработка realtime SPA с использованием VueJS и RethinkDB"Сергей Морковкин "Разработка realtime SPA с использованием VueJS и RethinkDB"
Сергей Морковкин "Разработка realtime SPA с использованием VueJS и RethinkDB"Fwdays
 
"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik HimiranovFwdays
 
React + Redux. Опыт использования
React + Redux. Опыт использованияReact + Redux. Опыт использования
React + Redux. Опыт использованияGDG Odessa
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим ПугачевCodeFest
 
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...Pavel Dovbush
 
"Prom.ua shopping cart workflow as a microfrontend", Danylo Kazymyrov
"Prom.ua shopping cart workflow as a microfrontend", Danylo Kazymyrov"Prom.ua shopping cart workflow as a microfrontend", Danylo Kazymyrov
"Prom.ua shopping cart workflow as a microfrontend", Danylo KazymyrovFwdays
 
"Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий Мантула"Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий МантулаFwdays
 
Docker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous IntegrationDocker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous IntegrationSQALab
 
Svyatoslav Login "How to test authentication and authorization for security"
Svyatoslav Login "How to test authentication and authorization for security"Svyatoslav Login "How to test authentication and authorization for security"
Svyatoslav Login "How to test authentication and authorization for security"Fwdays
 
Test driven development in net
Test driven development in netTest driven development in net
Test driven development in netAlex Tumanoff
 
"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27MoscowJS
 
Sql server clr integration
Sql server clr integration Sql server clr integration
Sql server clr integration Alex Tumanoff
 

Mais procurados (20)

Redux и изоморфные приложения
Redux и изоморфные приложенияRedux и изоморфные приложения
Redux и изоморфные приложения
 
#5 "React.js" Антон Артамонов
#5 "React.js" Антон Артамонов#5 "React.js" Антон Артамонов
#5 "React.js" Антон Артамонов
 
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
 
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Изоморфные React-приложения производительность и масштабирование / Денис Изма...Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
 
Современный фронтенд -- как не утонуть в море хайпа?
Современный фронтенд -- как не утонуть в море хайпа?Современный фронтенд -- как не утонуть в море хайпа?
Современный фронтенд -- как не утонуть в море хайпа?
 
Delivering Native User Experience In Client Side Java Applications
Delivering Native User Experience In Client Side Java ApplicationsDelivering Native User Experience In Client Side Java Applications
Delivering Native User Experience In Client Side Java Applications
 
Сергей Морковкин "Разработка realtime SPA с использованием VueJS и RethinkDB"
Сергей Морковкин "Разработка realtime SPA с использованием VueJS и RethinkDB"Сергей Морковкин "Разработка realtime SPA с использованием VueJS и RethinkDB"
Сергей Морковкин "Разработка realtime SPA с использованием VueJS и RethinkDB"
 
React.js – intro
React.js – introReact.js – intro
React.js – intro
 
"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov
 
React + Redux. Опыт использования
React + Redux. Опыт использованияReact + Redux. Опыт использования
React + Redux. Опыт использования
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
 
"Prom.ua shopping cart workflow as a microfrontend", Danylo Kazymyrov
"Prom.ua shopping cart workflow as a microfrontend", Danylo Kazymyrov"Prom.ua shopping cart workflow as a microfrontend", Danylo Kazymyrov
"Prom.ua shopping cart workflow as a microfrontend", Danylo Kazymyrov
 
"Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий Мантула"Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий Мантула
 
WebAssembly
WebAssemblyWebAssembly
WebAssembly
 
Docker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous IntegrationDocker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous Integration
 
Svyatoslav Login "How to test authentication and authorization for security"
Svyatoslav Login "How to test authentication and authorization for security"Svyatoslav Login "How to test authentication and authorization for security"
Svyatoslav Login "How to test authentication and authorization for security"
 
Test driven development in net
Test driven development in netTest driven development in net
Test driven development in net
 
"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27
 
Sql server clr integration
Sql server clr integration Sql server clr integration
Sql server clr integration
 

Destaque

JavaScript сегодня: React, Redux и новая реальность
JavaScript сегодня: React, Redux и новая реальностьJavaScript сегодня: React, Redux и новая реальность
JavaScript сегодня: React, Redux и новая реальностьDenis Izmaylov
 
Performance and Scalability Art of Isomorphic React Applications
Performance and Scalability Art of Isomorphic React ApplicationsPerformance and Scalability Art of Isomorphic React Applications
Performance and Scalability Art of Isomorphic React ApplicationsDenis Izmaylov
 
Isomorphic React Applications: Performance And Scalability
Isomorphic React Applications: Performance And ScalabilityIsomorphic React Applications: Performance And Scalability
Isomorphic React Applications: Performance And ScalabilityDenis Izmaylov
 
PreJSS: the final point in the CSS war
PreJSS: the final point in the CSS warPreJSS: the final point in the CSS war
PreJSS: the final point in the CSS warDenis Izmaylov
 
Tina Turner La Regina del Rock and Roll
Tina Turner La Regina del Rock and RollTina Turner La Regina del Rock and Roll
Tina Turner La Regina del Rock and Rollrockandrollboxmay21
 
Tina Turner The Queen of Rock and Roll
Tina Turner The Queen of Rock and RollTina Turner The Queen of Rock and Roll
Tina Turner The Queen of Rock and Rollrockandrollboxmay21
 
Tina Turner The Queen of Rock and Roll
Tina Turner The Queen of Rock and RollTina Turner The Queen of Rock and Roll
Tina Turner The Queen of Rock and Rollrockandrollboxmay21
 
Tina Turner La Reina del Rock and Roll
Tina Turner La Reina del Rock and RollTina Turner La Reina del Rock and Roll
Tina Turner La Reina del Rock and Rollrockandrollboxmay21
 
Consumed by cancer
Consumed by cancerConsumed by cancer
Consumed by cancerRyan Nichols
 

Destaque (20)

JavaScript сегодня: React, Redux и новая реальность
JavaScript сегодня: React, Redux и новая реальностьJavaScript сегодня: React, Redux и новая реальность
JavaScript сегодня: React, Redux и новая реальность
 
Performance and Scalability Art of Isomorphic React Applications
Performance and Scalability Art of Isomorphic React ApplicationsPerformance and Scalability Art of Isomorphic React Applications
Performance and Scalability Art of Isomorphic React Applications
 
Isomorphic React Applications: Performance And Scalability
Isomorphic React Applications: Performance And ScalabilityIsomorphic React Applications: Performance And Scalability
Isomorphic React Applications: Performance And Scalability
 
PreJSS: the final point in the CSS war
PreJSS: the final point in the CSS warPreJSS: the final point in the CSS war
PreJSS: the final point in the CSS war
 
A Rainha do Rock and Roll
A Rainha do Rock and RollA Rainha do Rock and Roll
A Rainha do Rock and Roll
 
Atan2
Atan2Atan2
Atan2
 
Tina Turner La Regina del Rock and Roll
Tina Turner La Regina del Rock and RollTina Turner La Regina del Rock and Roll
Tina Turner La Regina del Rock and Roll
 
Die Königin Rock and Roll
Die Königin Rock and RollDie Königin Rock and Roll
Die Königin Rock and Roll
 
A Rainha do Rock and Roll
A Rainha do Rock and RollA Rainha do Rock and Roll
A Rainha do Rock and Roll
 
Slideshare
SlideshareSlideshare
Slideshare
 
Tina Turner The Queen of Rock and Roll
Tina Turner The Queen of Rock and RollTina Turner The Queen of Rock and Roll
Tina Turner The Queen of Rock and Roll
 
Die Königin Rock and Roll
Die Königin Rock and RollDie Königin Rock and Roll
Die Königin Rock and Roll
 
The Queen of Rock and Roll
The Queen of Rock and RollThe Queen of Rock and Roll
The Queen of Rock and Roll
 
Tina Turner The Queen of Rock and Roll
Tina Turner The Queen of Rock and RollTina Turner The Queen of Rock and Roll
Tina Turner The Queen of Rock and Roll
 
La Reina del Rock and Roll
 La Reina del Rock and Roll La Reina del Rock and Roll
La Reina del Rock and Roll
 
Hpact resident lecture
Hpact resident lecture Hpact resident lecture
Hpact resident lecture
 
Tina Turner La Reina del Rock and Roll
Tina Turner La Reina del Rock and RollTina Turner La Reina del Rock and Roll
Tina Turner La Reina del Rock and Roll
 
Consumed by cancer
Consumed by cancerConsumed by cancer
Consumed by cancer
 
Tati
TatiTati
Tati
 
Prasad n. resume
Prasad n. resumePrasad n. resume
Prasad n. resume
 

Semelhante a redux: the best for isomorphic apps

Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Ontico
 
Микросервисный фронтенд
Микросервисный фронтендМикросервисный фронтенд
Микросервисный фронтендViacheslav Slinko
 
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...GeeksLab Odessa
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"Fwdays
 
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Ontico
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинSergey Xek
 
Внедрение зависимостей в ASP.NET MVС и ASP.NET vNext
Внедрение зависимостей в ASP.NET MVС и ASP.NET vNextВнедрение зависимостей в ASP.NET MVС и ASP.NET vNext
Внедрение зависимостей в ASP.NET MVС и ASP.NET vNextGoSharp
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только одинHappyDev
 
Jiramania презентации @augspb
Jiramania презентации   @augspbJiramania презентации   @augspb
Jiramania презентации @augspbGonchik Tsymzhitov
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCGetDev.NET
 
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"LogeekNightUkraine
 
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаRoman Dvornov
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Vladimir Bakhov
 
Елизавета Голенок Переходим на mono или как это было
Елизавета Голенок  Переходим на mono или как это былоЕлизавета Голенок  Переходим на mono или как это было
Елизавета Голенок Переходим на mono или как это былоMskDotNet Community
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeYehor Herasymchuk
 
Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Fwdays
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковCodeFest
 
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Ontico
 

Semelhante a redux: the best for isomorphic apps (20)

Breaking logs
Breaking logsBreaking logs
Breaking logs
 
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
 
Микросервисный фронтенд
Микросервисный фронтендМикросервисный фронтенд
Микросервисный фронтенд
 
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"
 
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
 
Внедрение зависимостей в ASP.NET MVС и ASP.NET vNext
Внедрение зависимостей в ASP.NET MVС и ASP.NET vNextВнедрение зависимостей в ASP.NET MVС и ASP.NET vNext
Внедрение зависимостей в ASP.NET MVС и ASP.NET vNext
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
 
Jiramania презентации @augspb
Jiramania презентации   @augspbJiramania презентации   @augspb
Jiramania презентации @augspb
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
 
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
 
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтенда
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)
 
Елизавета Голенок Переходим на mono или как это было
Елизавета Голенок  Переходим на mono или как это былоЕлизавета Голенок  Переходим на mono или как это было
Елизавета Голенок Переходим на mono или как это было
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And Forge
 
Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
 
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
 
Team workflow
Team workflowTeam workflow
Team workflow
 

redux: the best for isomorphic apps