Архив недели @eddartdort
Понедельник
Всем привет, меня зовут Саша)
Работаю над проектом quarkly.io - инструмент для интерактивной разработки react-приложений.
На этой неделе будем говорить про фронтенд, стейт менеджмент, кодогенерацию, сборщики и немного про бекенд на nodejs.
Сразу хочу сказать, я очень люблю опенсорс, сам люблю что-то изобретать
но больше я люблю читать чужой код
Если вы хотите рассказать про свои наработки - велкам
Задумывались когда-нибудь, зачем всем свой собственный ui-kit? В каждом новом проекте свои собственные карусели, формы итд. - а разница в основном в css
Интересный подход для создания переиспользуемого ui-kit’a github.com/zendeskgarden/…
В проекте мы используем как css-модули, так и CSS-in-JS
SC, Emotion - проблемы с производительностью?
есть интересная альтернатива:
github.com/lttb/reshadow
Вторник
Всем привет) сегодня поговорим про state management.
Я расскажу про свой опыт использования нескольких решений и поделюсь возможной альтернативой.
Если что-то упущу или вы просто захотите поделиться - пишите)
Итак :)
Redux - на моем опыте он показал себя негативно. Для того чтобы реализовывать достаточно большие проекты пришлось расширить стек до: redux+saga+lodash.fp+re-reselect. Код получается сложным, а решения есть и проще.
Mobx - первая альтернатива приходящая на ум. Все из коробки (почти все). Простой, но очень гибкий api. Порог вхождения очень низкий (по крайней мере для типичных задач). Кому-то кажется сложным под капотом. Даже если так, что лучше: сложный код или сложная библиотека?
Еще одна интересная альтернатива - github.com/artalar/reatom
Недавно в Ростове был проведен доклад youtu.be/b14YQNswsTk
Последний пост на сегодня про стейт-менеджеры 🙂
github.com/zerobias/effec…
обещал рассказать, но я знаю у кого получится лучше)
youtube.com/watch?v=fdjc5Z…
Подытоживая тему сегодняшних постов, хотелось бы сказать, что не стоит жертвовать бизнес задачами ради разработки на более популярной концепции. В нашем проекте мы используем mobx и как результат получили большой прирост к производительности как команды, так и самого приложения.
Выбирайте инструмент под задачи)
а завтра поговорим на более интересную и менее холиварную тему)
Среда
Всем привет)
Сегодня поговорим про работу с AST и кодогенерацию. Это моя самая любимая тема и это как раз то, с чего появилась идея quarkly.io.
Я поделюсь с вами интересными докладами, статьями и покажу несколько интересных проектов, где эти знания применяются.
Сразу отмечу, что тема значительно шире, чем я успею раскрыть. Мы поговорим про такие решения: кодмоды, babel / eslint и плагины, шаблонизаторы и диалекты языка.
Начать стоит с доклада и заодно ознакомиться с одним из прикладных применений — codemodes.
youtu.be/-YZt2DW75h8
Сегодня babel используется практически каждым js разработчиком.
Понять как он работает совсем не сложно - хороший доклад на тему: youtu.be/UeVq_U5obnE
Официальная документация (перевод на русский): github.com/jamiebuilds/ba…
Понимание как работает AST поможет вам разрабатывать свои собственные eslint-плагины.
Оф. дока: eslint.org/docs/developer…
Неплохая статья: medium.com/@bjrnt/creatin…
При разработке своих кодмодов, плагинов и конвертеров мы используем astexplorer.net
Инструмент позволяет интерактивно просматривать AST-дерево. Предусмотрена поддержка многих языков и диалектов, а также все популярные парсеры.
Четверг
В завершение темы про AST хочу рассказать про проект github.com/mdx-js/mdx
Mdx - специальный синтаксис, в котором можно совмещать jsx и md.
Интересен не только с технической, но и с практической точки зрения. Довольно удобно писать: блоги, книги и документацию.
Большинство разработчиков каждый день используют сборщики. Webpack, rollup или любой другой, но мало кто знает, как они работают.
Отличный материал для изучения: github.com/makewebme/buil…
Вы узнаете, как написать собственный сборщик, который будет проще чем типичный webpack-конфиг.
Пятница
Сегодня немного поговорим про backend на javascript.
Как вам deno?
node -> [no] <-> [de] -> deno
Появляются вакансии, поддержка ide
Доклад от создателя: youtube.com/watch?v=HjdJzN…