Upload
fwdays
View
364
Download
4
Embed Size (px)
Citation preview
Roman IakobchukLifestreet
Real-life React
Як я прийшов в Реакт
Мені необхідно було:• Швидкий фреймворк• Зручність роботи з залежними станами• Масштабуємість компонентів• Рішення, що уживатиметься з чим завгодно
А, якщо чесно
• Мені було нуднувато• Я вчив функціональне програмування• Реакт був цікавою новинкою
Реакт в стилі FRP
• Надійно: чисті функції, іммутабельні данні• Прозоро: декларативний опис UI і бізнес-логіки• Цікаво: прекрасно ламає мозок
Universal apps
• Унікально: неочевидно (чи недосяжно) в інших фреймворках• Перспективно: все більше проектів в такому форматі• Цікаво: можливість створювати best-practice
Who cares?
• Хто писав FRP-логіку?• Хто розробляв додатки з серверним рендерингом?• Хто робить на React дійсно складні проекти?
Які у вас повсякденні задачі?
• Розробка простих SPA: те що вчора було звичайним сайтом• Розумні компоненти: чати, менюшки, редактори…• Підтримка legacy-коду
Інколи React - не ваш варіант
• Класичний SPA• Багато імперативних взаємодій• Задача вирішується за годину з jQuery• Важливі переходи між станами, наприклад анімації• В команді немає хороших програмістів
Що відбувається з командою
• Заперечення• Гнів• Торг• Депресія• Прийняття
Найбільша проблема
Все не так сумно
Історія одного “неправильного” вибору
Як з’їсти слона
• Величезний Legacy проект• Технології, котрі вже рік тому не бажали підтримувати• Бажання зберегти мінімальний технологічний стек• Команда прекрасних розробників
Коли Реакт - ідеальне рішення
• Багато дрібних компонент• Набір слабкозалежних розумних компонентів• Коли данних значно більше, ніж UI• Для складних задач, що потребують низькорівневих
рішень
SPA на React
Cons:• Довга дорога до першого результату• Скільки розробників, стільки й підходів• Багато бойлер-плейтуPros:• Гнучкість• Швидкість• Реюзабельність
Злодійський план
• Давайте зробимо один апп на Реакті• Давайте виділимо розумні компоненти і використаємо
всюди• Давайте поріжемо це на дрібні компонентики і зробимо
свою бібліотеку• У нас якось багато елементів на Реакті, давайте все на
ньому робити
Результат
• Всі нові проекти пишуться на Реакті• Велика кількість складних компонентів переписується на
Реакт• Створюється бібліотека стандартних компонентів• Створюється стандартизований data-layer на основі
immutable.js
Висновки
Pros:• Можливість використовувати де завгодно• Можливість поступового переїзду• Широкий (найширший?) спектр застосуванняCons:• Високий поріг входу• Дуже багато писати руками• Відсутність стандартів
Найважливіша порада
Завжди, завжди, завжди пишіть propTypes
Робіть круті проекти
Роман ЯкобчукSkype: r.iakobchukEmail: [email protected]://roma.if.ua