[Екатеринбург, анонс] UralJS #6 — три доклада о типизации, проблемах this и оптимизации React-прилож
- суббота, 27 января 2018 г. в 03:14:35
В четверг 8 февраля в 19:00 в коворкинге «Соль» пройдет первая в 2018 году встреча UralJS. Разберемся, почему в Контуре TypeScript победил Flow, послушаем рецепты оптимизации от Лёши Иванова — злого марсианина и члена программного комитета Fronttalks, и поспорим, что круче: функциональщина или ООП.
UralJS появился как эксперимент — группе коллег не хватало профессиональной движухи, и мы решили ее организовать. В первый раз собралось 70 разработчиков, а теперь мы закрываем регистрацию на сотне участников, потому что площадки не резиновые. Расширяется география — к нам в Екатеринбург приезжали гости из Тюмени, Челябинска и Перми.
За 2017 год мы провели 5 митапов. Обсуждали, что делать, если маленький пет-проект привлечет миллион пользователей, рассказывали, какой классный Vue и тут же бомбили по этому поводу, разбирались с интернационализацией и восхищались потокам в JS. Летом мы попробовали другие форматы. Андрей Старовойт из JetBrains сделал большой доклад о том, как разработчики WebStorm выбирают технологии для поддержки. Вместе кодили на выходных — щупали Ангуляр и решали одну и ту же задачу пять раз с разными партнерами и ограничениями.
Что будет на этот раз:
Использование ключевого слова this в JS является индикатором потенциальных проблем, связанных с внесением неявного состояния или зависимостей внутри класса. Я покажу как находить эти проблемы и решать их с помощью инструментов из функционального программирования.
Поговорим о типизации приложений на TypeScript. Покажу, как добавить с нуля типы в Redux-приложение и получить максимум контроля над приложением. Покажу, почему в типизированном приложении можно писать меньше тестов и из него полностью исчезают ошибки определённых классов — если компилируется, то просто работает. Раскрою негативную сторону: расскажу, насколько увеличивается время разработки и размер кодовой базы. Объясню, как типы помогают привлечь бэкендеров к разработке фронтенда.
При компиляции JSX в JS получаются функции. Одни функции вложены в другие, другие вложены в третьи. Если вызвать самую верхнюю функцию, то сначала получится VirtualDOM, а потом и просто DOM.
Пока все хорошо. Но теперь нам нужно поменять какие-то данные в приложении, и изменить наш DOM на их основе. И вот тут начинаются разные нюансы. Все ли изменения одинаково полезны? Какие правки будут вызвать перерендер, а какие нет? Как React выбирает, что именно изменить? Какие изменения в VirtualDOM позовут за собой изменения DOM, а какие нет? Как организовать свои данные так, чтобы приложение работало максимально быстро?
Если при вводе данных в текстовое поле у вас начинает тормозить все приложение, чекбоксы выставляются по полсекунды, а анимации тормозят, то мой доклад вам пригодится.
Участие бесплатное, но надо зарегистрироваться, чтобы организаторы подготовили чай, кофе и снеки для всех гостей.
Регистрация — тут.
Записи докладов появятся на YouTube-канале после митапа.