SlideShare a Scribd company logo
ПОДХОДЫ И ТЕХНОЛОГИИ
в React Redux
РЕКОМЕНДАЦИИ ПО ВЫБОРУ ТЕХНОЛОГИЙ И ПОДХОДОВ
Андрей Лазарев
Lead Software Engineer at
Innovecs
12 лет в разработке
10 лет в разработке программных
продуктов
3 года создания проектов на React
2
Введение
Что такое продукт
Решение задач
Подходы к созданию React проектов
Выбор технологий для React проекта
Советы по выбору
3 Innovecs. All rights reserved
2018
Что такое продукт
Продукт !== Код
Время и стоимость создания продукта
Инструменты производства
Технический долг
4 Innovecs. All rights reserved
2018
Продукт — произведение труда, законченный
результат некоторой деятельности
Решение задач
5
Сторонние технологии,
инструменты и модули
Подходы решения задач
в React / Redux
Подходы к
созданию
React
проектов
МОДУЛЬНАЯ СТРУКТУРА
УМНЫЕ И ГЛУПЫЕ КОМПОНЕНТЫ
СТРОГАЯ ТИПИЗАЦИЯ
REDUX
УТИНАЯ ТИПИЗАЦИЯ (DUCK)
ФУНКЦИЯ ВЫСШЕГО ПОРЯДКА (HOC)
6 Innovecs. All rights reserved
2018
Модульная структура
Модуль —
функционально
законченный фрагмент
программы.
Модульное
программирование —
это организация программы как
совокупности небольших
независимых блоков,
называемых модулями,
структура и поведение которых
подчиняются определенным
правилам.
7 Innovecs. All rights reserved
2018
Умные и глупые компоненты
8 Innovecs. All rights reserved
2018
Строгая типизация
Smart и Dump
компоненты
PropTypes
DefaultProp
s
ESDock
<Component {…props} />
_ { }
/
9 Innovecs. All rights reserved
2018
Использование Redux
Redux –
это инструмент
управления как
состоянием данных, так и
состоянием интерфейса.
Единственный
источник истины
Состояние
доступно только
для чтения
Изменения делаются
«чистыми» функциями
Innovecs. All rights reserved
2018
10
Утиная типизация (Duck)
Если это выглядит как утка,
плавает как утка и крякает как
утка, то это, возможно, и есть
утка
Группировка actionTypes,
actions, reducer
Необходимо использовать
export default функции reducer()
Необходимо экспортировать
action creater как функции
Необходимо использовать action types
в виде npm-module-or-app/reducer/
ACTION_TYPE
Можно экспортировать action types в
виде UPPER_SNAKE_CASE для
использования в внешних редюсерах
или переиспользования библиотеки
9
Функция Высшего Порядка (HOC)
- это функция которая может принимать в качестве аргументов другие
функции и/или возвращать функции.
class BirthdayPresents extends Components {}
export default compose(
connect(mapState, mapDispatch),
withUsers,
withBirthday,
withFetchPresents,
withToys,
withoutBlue,
withEmpty,
withStyles
)(BirthdayPresents);
12 Innovecs. All rights reserved
2018
Работы с данными, а не с JSX
Зависимость от порядка вызова
Зависимость аргументов от результатов
выполнения других HOC
Перезапись значений другими функциями
Выбор технологий
для React проекта
УСТАНОВКА И НАСТРОЙКА СБОРКИ ПРОЕКТА
Innovecs. All rights reserved
2018
BOILERPLATE
RECOMPOSE
REACT MATERIAL UI
13
Установка и
настройка
сборки
проекта
Установка пакетов с
помощью npm, Bower
Подключение jQuery
ииспользование
ES5
Сборка с помощью
Webpack, Gulp, Grunt
Использование Boilerplates
Настройка стилей
SASS/SCSS, LESS, JSS, inline
CSS
НЕ ДЕЛАЙТЕ ТАК!
14 Innovecs. All rights reserved
2018
Recompose
HOC – Higher-order components
Pure
shouldUpdate
Compose
renderNothing
15 Innovecs. All rights reserved
2018
export default compose(
connect(mapState, mapDispatch),
pure()
)(Component);
Material UI
ДОСТОИНСТВА НЕДОСТАТКИ
Начальная скорость разработки
Список компонентов
Иконочные шрифты
Интеграция в Redux Form
Серверный рендеринг
Сложность расширения
Сложность кастомизации
Inline стили
Использование px
Наличие багов
16 Innovecs. All rights reserved
2018
Советы по выбору
Проведите анализ
текущего проекта
Составьте список
проблем
Определите, что можете
улучшить, оптимизировать
Определите
приоритеты и
критерии оценки
Выберите
технологи
и
Начнит
е
проект
17 Innovecs. All rights reserved
2018
Андрей Лазарев
lazarev911
andrii.lazariev@innovecs.com
www.linkedin.com/in/andrey-lazarev
СКАЧАТЬ
Innovecs. All rights reserved
2018

More Related Content

Similar to Подходы и технологии в React Redux (20)

PPTX
[RU] Connecting AutoCAD and Python (by Alex Bausk)
Alexander Bausk
 
PPT
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
Омские ИТ-субботники
 
PPT
Sef2009
sef2009
 
PPTX
Aspect Oriented Programming and Design Patterns
Andrey Gordienkov
 
PPTX
AOP and Design Patterns (GoF)
Andrey Gordienkov
 
PDF
Семинар ФКН: современные подходы к разработке ПО - часть 1
Andrii Gakhov
 
PDF
IT-инфраструктура. FAQ для разработчика
Mikhail Chinkov
 
PPT
Архитектура в Agile проекте
LuxoftTraining
 
PPTX
Никита Галкин "Testing in Node.js World"
Fwdays
 
PPT
Лекция 4
itc73
 
PDF
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
AvitoTech
 
PDF
Секрет производства: программный продукт, за который не будет стыдно
CUSTIS
 
PDF
Декларативное программирование клиент-серверных приложений на андроид - UA Mo...
UA Mobile
 
PPTX
Tdd php
Magento Dev
 
PDF
Artsofte for b2 b
Artsofte IT company
 
PDF
Rempl – крутая платформа для крутых инструментов
Roman Dvornov
 
PDF
Yehor Nazarkin "Journey to the distributed task queue"
OdessaPyConference
 
PPT
Как спроектировать хороший API и почему это так важно
Bubon Makabra
 
PDF
Инструментируй это
Roman Dvornov
 
PPT
Why Drupal. Виктор Левандовский.
DrupalCampDN
 
[RU] Connecting AutoCAD and Python (by Alex Bausk)
Alexander Bausk
 
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
Омские ИТ-субботники
 
Sef2009
sef2009
 
Aspect Oriented Programming and Design Patterns
Andrey Gordienkov
 
AOP and Design Patterns (GoF)
Andrey Gordienkov
 
Семинар ФКН: современные подходы к разработке ПО - часть 1
Andrii Gakhov
 
IT-инфраструктура. FAQ для разработчика
Mikhail Chinkov
 
Архитектура в Agile проекте
LuxoftTraining
 
Никита Галкин "Testing in Node.js World"
Fwdays
 
Лекция 4
itc73
 
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
AvitoTech
 
Секрет производства: программный продукт, за который не будет стыдно
CUSTIS
 
Декларативное программирование клиент-серверных приложений на андроид - UA Mo...
UA Mobile
 
Tdd php
Magento Dev
 
Artsofte for b2 b
Artsofte IT company
 
Rempl – крутая платформа для крутых инструментов
Roman Dvornov
 
Yehor Nazarkin "Journey to the distributed task queue"
OdessaPyConference
 
Как спроектировать хороший API и почему это так важно
Bubon Makabra
 
Инструментируй это
Roman Dvornov
 
Why Drupal. Виктор Левандовский.
DrupalCampDN
 

More from Innovecs (20)

PDF
Building Efficient and High Performing iLottery Solutions
Innovecs
 
PDF
Innovecs Meetup Lifestory
Innovecs
 
PPTX
Redux vs RxJS vs Mobx в связке с React
Innovecs
 
PDF
Web Platform for Fashion Shop
Innovecs
 
PDF
Programmatic Advertising Platform
Innovecs
 
PDF
Multimedia Newsroom
Innovecs
 
PDF
Media Buying Platform (DSP+DPM)
Innovecs
 
PDF
Web-based Shipment Application
Innovecs
 
PDF
Digital Trading Platform
Innovecs
 
PDF
Mobile Insurance Agent
Innovecs
 
PDF
Online Learning Platform
Innovecs
 
PDF
Client Bank
Innovecs
 
PDF
Fertility Tracking App
Innovecs
 
PDF
Warranty Wallet App
Innovecs
 
PDF
Online Bingo Game
Innovecs
 
PDF
Secure Messenger
Innovecs
 
PDF
Search Data Platform
Innovecs
 
PDF
Website Builder for Insurance Agents
Innovecs
 
PDF
United Trading Platform
Innovecs
 
PDF
Match3 Game
Innovecs
 
Building Efficient and High Performing iLottery Solutions
Innovecs
 
Innovecs Meetup Lifestory
Innovecs
 
Redux vs RxJS vs Mobx в связке с React
Innovecs
 
Web Platform for Fashion Shop
Innovecs
 
Programmatic Advertising Platform
Innovecs
 
Multimedia Newsroom
Innovecs
 
Media Buying Platform (DSP+DPM)
Innovecs
 
Web-based Shipment Application
Innovecs
 
Digital Trading Platform
Innovecs
 
Mobile Insurance Agent
Innovecs
 
Online Learning Platform
Innovecs
 
Client Bank
Innovecs
 
Fertility Tracking App
Innovecs
 
Warranty Wallet App
Innovecs
 
Online Bingo Game
Innovecs
 
Secure Messenger
Innovecs
 
Search Data Platform
Innovecs
 
Website Builder for Insurance Agents
Innovecs
 
United Trading Platform
Innovecs
 
Match3 Game
Innovecs
 
Ad

Подходы и технологии в React Redux

  • 1. ПОДХОДЫ И ТЕХНОЛОГИИ в React Redux РЕКОМЕНДАЦИИ ПО ВЫБОРУ ТЕХНОЛОГИЙ И ПОДХОДОВ
  • 2. Андрей Лазарев Lead Software Engineer at Innovecs 12 лет в разработке 10 лет в разработке программных продуктов 3 года создания проектов на React 2
  • 3. Введение Что такое продукт Решение задач Подходы к созданию React проектов Выбор технологий для React проекта Советы по выбору 3 Innovecs. All rights reserved 2018
  • 4. Что такое продукт Продукт !== Код Время и стоимость создания продукта Инструменты производства Технический долг 4 Innovecs. All rights reserved 2018 Продукт — произведение труда, законченный результат некоторой деятельности
  • 5. Решение задач 5 Сторонние технологии, инструменты и модули Подходы решения задач в React / Redux
  • 6. Подходы к созданию React проектов МОДУЛЬНАЯ СТРУКТУРА УМНЫЕ И ГЛУПЫЕ КОМПОНЕНТЫ СТРОГАЯ ТИПИЗАЦИЯ REDUX УТИНАЯ ТИПИЗАЦИЯ (DUCK) ФУНКЦИЯ ВЫСШЕГО ПОРЯДКА (HOC) 6 Innovecs. All rights reserved 2018
  • 7. Модульная структура Модуль — функционально законченный фрагмент программы. Модульное программирование — это организация программы как совокупности небольших независимых блоков, называемых модулями, структура и поведение которых подчиняются определенным правилам. 7 Innovecs. All rights reserved 2018
  • 8. Умные и глупые компоненты 8 Innovecs. All rights reserved 2018
  • 9. Строгая типизация Smart и Dump компоненты PropTypes DefaultProp s ESDock <Component {…props} /> _ { } / 9 Innovecs. All rights reserved 2018
  • 10. Использование Redux Redux – это инструмент управления как состоянием данных, так и состоянием интерфейса. Единственный источник истины Состояние доступно только для чтения Изменения делаются «чистыми» функциями Innovecs. All rights reserved 2018 10
  • 11. Утиная типизация (Duck) Если это выглядит как утка, плавает как утка и крякает как утка, то это, возможно, и есть утка Группировка actionTypes, actions, reducer Необходимо использовать export default функции reducer() Необходимо экспортировать action creater как функции Необходимо использовать action types в виде npm-module-or-app/reducer/ ACTION_TYPE Можно экспортировать action types в виде UPPER_SNAKE_CASE для использования в внешних редюсерах или переиспользования библиотеки 9
  • 12. Функция Высшего Порядка (HOC) - это функция которая может принимать в качестве аргументов другие функции и/или возвращать функции. class BirthdayPresents extends Components {} export default compose( connect(mapState, mapDispatch), withUsers, withBirthday, withFetchPresents, withToys, withoutBlue, withEmpty, withStyles )(BirthdayPresents); 12 Innovecs. All rights reserved 2018 Работы с данными, а не с JSX Зависимость от порядка вызова Зависимость аргументов от результатов выполнения других HOC Перезапись значений другими функциями
  • 13. Выбор технологий для React проекта УСТАНОВКА И НАСТРОЙКА СБОРКИ ПРОЕКТА Innovecs. All rights reserved 2018 BOILERPLATE RECOMPOSE REACT MATERIAL UI 13
  • 14. Установка и настройка сборки проекта Установка пакетов с помощью npm, Bower Подключение jQuery ииспользование ES5 Сборка с помощью Webpack, Gulp, Grunt Использование Boilerplates Настройка стилей SASS/SCSS, LESS, JSS, inline CSS НЕ ДЕЛАЙТЕ ТАК! 14 Innovecs. All rights reserved 2018
  • 15. Recompose HOC – Higher-order components Pure shouldUpdate Compose renderNothing 15 Innovecs. All rights reserved 2018 export default compose( connect(mapState, mapDispatch), pure() )(Component);
  • 16. Material UI ДОСТОИНСТВА НЕДОСТАТКИ Начальная скорость разработки Список компонентов Иконочные шрифты Интеграция в Redux Form Серверный рендеринг Сложность расширения Сложность кастомизации Inline стили Использование px Наличие багов 16 Innovecs. All rights reserved 2018
  • 17. Советы по выбору Проведите анализ текущего проекта Составьте список проблем Определите, что можете улучшить, оптимизировать Определите приоритеты и критерии оценки Выберите технологи и Начнит е проект 17 Innovecs. All rights reserved 2018