44
ReMeetup 2017

Что такое современная Frontend разработка

Embed Size (px)

Citation preview

Page 1: Что такое современная Frontend разработка

ReMeetup2017

Page 2: Что такое современная Frontend разработка

Эволюция одного фронтенд проекта

Павел Бирюков Джаваскрипт разработчик «Эволюшн Гейминг», Рига

Page 3: Что такое современная Frontend разработка

Evolution Gaming

Page 4: Что такое современная Frontend разработка

Как мы росли2015…2017

10 👬 … 45 👬 300 000 LOC … 450 000 LOC

3700 Files … 9000 Files 4 Games … 7 Games

Monorepo … 14 Repos . …..Backbone … React, Redux

2012… 0…

0 LOC… 0 Files…

0 Games… Nonrepo… Vanillajs…

Page 5: Что такое современная Frontend разработка

Dependency injection

~270 файлов

Смигрировали на RequireJS

Page 6: Что такое современная Frontend разработка

Build Tools

• Maven

• Ant

• Why? 😱

Page 7: Что такое современная Frontend разработка

Gulp

• Модно

• Более модно, чем Grunt

• У всех уже давно Gulp

Page 8: Что такое современная Frontend разработка

Ant → Gulp

Ура, переписываем! 🎉

Page 9: Что такое современная Frontend разработка

Ant → Gulp

• Заняло 1 человеко/месяц

• Смогли включить автопрефиксер для stylus

• Стало невозможно читать gulpfile

• Больно работать с файлами (но он же для работы с файлами)

Page 10: Что такое современная Frontend разработка

WebPack

• Модно

• Гибко

• Сложно

• У всех уже давно вебпак

Page 11: Что такое современная Frontend разработка

WebPack

Ура, переписываем! 🎉

Page 12: Что такое современная Frontend разработка

WebPack

• 4 человека/месяца

• Большинство боится заглядывать в webpack.config.js (я тоже)

• Высокие шансы регрессии (как у всякого билд тула)

Page 13: Что такое современная Frontend разработка

CoffeeScript2010🐣…Date.now()☠

Page 14: Что такое современная Frontend разработка

CoffeeScript

Ура, переписываем! 🎉

Page 15: Что такое современная Frontend разработка

CoffeeScriptКофескрипт

ВремяНет

Чуть-чуть есть

Много

Page 16: Что такое современная Frontend разработка

CoffeeScript 👎

• Отступы

• Отладка

• Дополнительный этап сборки

• Большинство его ненавидит

Page 17: Что такое современная Frontend разработка

Эволюция нормального человека

Page 18: Что такое современная Frontend разработка

Эволюция фронтенда

Page 19: Что такое современная Frontend разработка

TypeScript 🤘

• Не модно

• Есть типы

• Есть автокомплит

• Хороший тулинг (tsserver, tslint, vs code)

Page 20: Что такое современная Frontend разработка

TypeScript

Ура, переписываем! 🎉

Page 21: Что такое современная Frontend разработка

TypeScript 👎

• Порог вхождения

• Плохой компилятор (все равно нужен Babel 😭)

• Фейсбук придумал Флоу 😱

• Фейсбук сынтегрировал Flow в Babel 💩

Page 22: Что такое современная Frontend разработка

React

• Модно

• ОЧЕНЬ МОДНО

• Там же FP

• У всех уже давно реакт

Page 23: Что такое современная Frontend разработка

React

Ура, переписываем! 🎉

Page 24: Что такое современная Frontend разработка

React

• Мигрируем до сих пор

• Да, тут FP

• Да, тут есть проблемы

Page 25: Что такое современная Frontend разработка

Jest

• Модный

• Автомоки

• Сделано в Фейсбуке

• У вас Карма? У всех уже давно Джест!

Page 26: Что такое современная Frontend разработка

Jest

Ура, переписываем! 🎉

Page 27: Что такое современная Frontend разработка

Jest

• Быстрый (потому что избавились от Фантома)

• Работает coverage (в основном)

• Становится лучше

Page 28: Что такое современная Frontend разработка

NPM

• Умеренно модный

• Удобно разделять код

• Удобно управлять зависимостями

Page 29: Что такое современная Frontend разработка

NPM

Ура, переписываем! 🎉

Page 30: Что такое современная Frontend разработка

NPM

• Неудобно разделять код

• Неудобно управлять зависимостями

Page 31: Что такое современная Frontend разработка

NPM

Page 32: Что такое современная Frontend разработка

Выводы

• React медленнее Backbone *

• React быстрее Backbone *

• WebPack хуже RequireJS *

• WebPack лучше RequireJS *

* 💩

Page 33: Что такое современная Frontend разработка

Выводы• TypeScript лучше JavaScript *

• TypeScript хуже JavaScript *

* 💩

Page 34: Что такое современная Frontend разработка

Фронтенд

Page 35: Что такое современная Frontend разработка

WebPack ❤

• Мощный

• Расширяемый

• Да, сложный

Page 36: Что такое современная Frontend разработка

React Lifecycle ❤

Page 37: Что такое современная Frontend разработка

React Lifecycle ❤

• Хорошо отражают происходящее

• Альтернативы с тем же API (Preact, React-Lite)

Page 38: Что такое современная Frontend разработка

TypeScript ❤• Тулинг решает

• 2.0 🎉

• 2.1 ❤

• 2.2 😘

• 2.3 😍

Page 39: Что такое современная Frontend разработка

Redux’ Data Flow ❤• Однонаправленный (простой)

• Сериализуется (time travel)

Page 40: Что такое современная Frontend разработка

Тулинг ❤• Скорость загрузки приложения

• В нормальной сети

• В медленной сети с потерей пакетов

• Производительность

• Тесты на девайсах

Page 41: Что такое современная Frontend разработка

Тулинг ❤• Автоматический репорт ошибок (Sentry)

• Размер бандла

• При каждом релизе

• Размеры зависимостей

Page 42: Что такое современная Frontend разработка

Фронтенд

• Видел архитектуру, когда читал книгу по джаве 😎

• Можно быть глупым 🐓

• Платят как умному 🍻

• Мы нанимаем 🎉( → Интернет → «evolution gaming» → vacancies)

Page 43: Что такое современная Frontend разработка

FIN

Page 44: Что такое современная Frontend разработка

Q&A

🍻

🍺

🍷

🍺🍺

🍺

🍷

🍷

🍷 🍷🍻

🍻

🍻