Можна скільки завгодно розповідати про радість використання Реакту в проектах для яких він був народжений. Але цього разу я поділюсь з вами досвідом використання цієї бібліотеки в повсякденному житті у великій компанії.
Я поясню, чому раз за разом для нового проекту я обираю React, яку користь і які проблеми це приносить. Ви побачите весь спектр його застосування, і почуєте, коли від нього варто відмовитись.
2. Як я прийшов в Реакт
Мені необхідно було:
• Швидкий фреймворк
• Зручність роботи з залежними станами
• Масштабуємість компонентів
• Рішення, що уживатиметься з чим завгодно
3. А, якщо чесно
• Мені було нуднувато
• Я вчив функціональне програмування
• Реакт був цікавою новинкою
4. Реакт в стилі FRP
• Надійно: чисті функції, іммутабельні данні
• Прозоро: декларативний опис UI і бізнес-логіки
• Цікаво: прекрасно ламає мозок
5. Universal apps
• Унікально: неочевидно (чи недосяжно) в інших фреймворках
• Перспективно: все більше проектів в такому форматі
• Цікаво: можливість створювати best-practice
6. Who cares?
• Хто писав FRP-логіку?
• Хто розробляв додатки з серверним рендерингом?
• Хто робить на React дійсно складні проекти?
7. Які у вас повсякденні задачі?
• Розробка простих SPA: те що вчора було звичайним сайтом
• Розумні компоненти: чати, менюшки, редактори…
• Підтримка legacy-коду
8. Інколи React - не ваш варіант
• Класичний SPA
• Багато імперативних взаємодій
• Задача вирішується за годину з jQuery
• Важливі переходи між станами, наприклад анімації
• В команді немає хороших програмістів
9. Що відбувається з командою
• Заперечення
• Гнів
• Торг
• Депресія
• Прийняття
11. Все не так сумно
Історія одного “неправильного” вибору
12. Як з’їсти слона
• Величезний Legacy проект
• Технології, котрі вже рік тому не бажали підтримувати
• Бажання зберегти мінімальний технологічний стек
• Команда прекрасних розробників
13. Коли Реакт - ідеальне рішення
• Багато дрібних компонент
• Набір слабкозалежних розумних компонентів
• Коли данних значно більше, ніж UI
• Для складних задач, що потребують низькорівневих рішень
14. SPA на React
Cons:
• Довга дорога до першого результату
• Скільки розробників, стільки й підходів
• Багато бойлер-плейту
Pros:
• Гнучкість
• Швидкість
• Реюзабельність
15. Злодійський план
• Давайте зробимо один апп на Реакті
• Давайте виділимо розумні компоненти і використаємо всюди
• Давайте поріжемо це на дрібні компонентики і зробимо свою бібліотеку
• У нас якось багато елементів на Реакті, давайте все на ньому робити
16. Результат
• Всі нові проекти пишуться на Реакті
• Велика кількість складних компонентів переписується на Реакт
• Створюється бібліотека стандартних компонентів
• Створюється стандартизований data-layer на основі immutable.js
17. Висновки
Pros:
• Можливість використовувати де завгодно
• Можливість поступового переїзду
• Широкий (найширший?) спектр застосування
Cons:
• Високий поріг входу
• Дуже багато писати руками
• Відсутність стандартів