# Понедельник 49 твитов
Всем привет! На этой неделе с вами @ilialesik. Поговорим про опен-сорс, организацию ИТ-сообществ, как интегрировать… twitter.com/i/web/status/1…
7:59Немного про меня:
8:01Основатель и Software Engineer в компании @lessmessdev. Занимаемся IT-аутсорсингом и консалтингом.
8:02Опен-сорс разработчик, мой основной проект: github.com/react-figma/re…
8:04Квалифицированный преподаватель-исследователь. Изучал исследование операций и экономику общественного благосостояни… twitter.com/i/web/status/1…
8:07Редко, но метко выступаю на конференциях holyjs-moscow.ru/2020/msk/talks…
8:08И митапах youtube.com/watch?v=0EJTAp…
8:09Хочу постепенно трансформироваться из аутсорсера в продукт, поэтому пробую себя в стартапах:
8:10Интенсивы по 3D печати + образовательная настольная игра additivka.ru
8:11b2b маркетплейс для ИТ-консультантов brainhub.network @brainhubinc
8:12Родился и живу в городе Тверь и являюсь его неформальным амбассадором.
8:14Микробиблиотек тред
11:12Микробиблиотека - это пакет, который
1) Решает какую-то одну небольшую проблему
2) Экстремально мало весит
Примеры моих собственных библиотек:
11:14Реакт хук для того чтобы, фетчить данные:
github.com/ilyalesik/reac…
Реакт хук для медиа-выражений: github.com/lessmess-dev/r…
11:15Модуль для работы с localStorage для библиотеки @EffectorJS github.com/lessmess-dev/e…
11:16Микробиблиотеки хороши тем, что не дают бандлу вашего приложения разрастаться.
11:19Производительность - однозначно тренд это года.
11:20А начиная с марта 2021-года Гугл будет использовать производительность на мобильных девайсах как основную метрику д… twitter.com/i/web/status/1…
11:21Как же сделать свою микро-библиотеку?
11:22Если есть возможность - лучше писать на es5 без транспилиции
11:23Для того, чтобы случайно не написать что-то на современном ES, можно использовать ESLint
11:24Мой конфиг для микробиблиотек: github.com/lessmess-dev/e…, использует плагины es5/no-es2015, es5/no-es2016 под капотом
11:25И, конечно, нужно настроить size-limit @andrey_sitnik на CI/CD, чтобы контролировать размер бандла. Конфиг выглядит… twitter.com/i/web/status/1…
11:27Типы можно подкладывать отдельно, в виде .d.ts и .js.flow файлов.
11:29За счет того, что сами библиотеки микро- не должно составлять труда проконтролировать весь внутренний код без типизации.
11:30Но, конечно, есть смысл написать тесты.
11:30Еще примеры микро-библиотек:
11:31Wouter - роутер для React и Preact, автор @mlfrg github.com/molefrog/wouter
11:35eo-locale - интернационализация для приложений, автор @smartass3000 github.com/ibitcy/eo-loca…
11:36react-colorful - колор-пикер, автор @Omgovich github.com/omgovich/react…
11:38tinyhttp - веб-фреймоворк, автор @v1rtl
github.com/talentlessguy/…
И множество библиотек @andrey_sitnik, который является основным популяризатором этого подхода:
11:42Стейт-менеджер
github.com/storeon/storeon
Генерация идентификаторов
github.com/ai/nanoid
Есть еще хорошие примеры? Скидывайте в тред
11:44@jsunderhood 3 неделю подряд (а может и не подряд) рассказывают про микробиблиотеки. Что так наболело?
Рассказывают много, но до сих пор для многих нужд нет хороших микро-библиотек!
@jsunderhood 3 неделю подряд (а может и не подряд) рассказывают про микробиблиотеки. Что так наболело?
11:47
Множество библиотек для реакта берут начало в 2015 году и не соответствуют современным требованиям.
11:48Что уж там говорить, я даже не видел нормального слайдера. До сих пор приходится тащить react-slick, кодовая база которого тянется из jquery
11:49Мне кажется, это отличный способ вкатиться в опен-сорс - написать микро-версию с контролем размера с помощью size-limit
11:54webpack-bundle-analyzer на проектах потом скажет вам "спасибо". 🙂
11:56@jsunderhood извиняюсь за самопиар, но я ещё помимо tinyhttp писал (очень маленький) парсер запросов:… twitter.com/i/web/status/1…
🔥
@jsunderhood извиняюсь за самопиар, но я ещё помимо tinyhttp писал (очень маленький) парсер запросов:… twitter.com/i/web/status/1…
13:23
Мне вот кажется, что вместо библиотек для функций на 5 строчек (а-то и на одну), лучше бы в каждый проекте их самом… twitter.com/i/web/status/1…
Немного поясню. Для меня микробиблиотека это не про оборачивание однострочника в пакет, а про контроль размера банд… twitter.com/i/web/status/1…
Мне вот кажется, что вместо библиотек для функций на 5 строчек (а-то и на одну), лучше бы в каждый проекте их самом… twitter.com/i/web/status/1…
13:45
Возможно терминологически это не совсем корректно, но библиотеки вроде Wouter и eo-locale, которые, мягко говоря, н… twitter.com/i/web/status/1…
13:46@jsunderhood Сам Preact в некотором роде микробиблиотека :) Плюс у Джейсона много других хороших штук есть… twitter.com/i/web/status/1…
Да! Preact это тема
@jsunderhood Сам Preact в некотором роде микробиблиотека :) Плюс у Джейсона много других хороших штук есть… twitter.com/i/web/status/1…
16:20
Раз уж заговорили про микробиблиотеки, то давайте обсудим микрофронтенды. Сам не разу не пробовал. Кто что думает?
22:11На эту тему на последнем @HolyJSconf был отличный доклад Павла @nodkz Черторогова. holyjs-moscow.ru/2020/msk/talks…
22:12# Вторник 85 твитов
@jsunderhood Если есть проблемы которые микрофронтенды решают, то отличная штука. У нас в Тинькофф активно использу… twitter.com/i/web/status/1…9:11
@jsunderhood Есть рабочие кейсы у Genereal Electric (Predix Apphib) и у Swisscom. В Сбере похожая архитектура. Из п… twitter.com/i/web/status/1…9:11
Попробую раскрыть тему, в которой довольно немало покопался, пока разрабатывал github.com/react-figma/re… - Реакт ренд… twitter.com/i/web/status/1…
9:30Реакт силен тем, что был спроектирован так, что позволяет достаточно легко расширяться под платформы, отличные от веба.
9:32Самый известный пример это React Native reactnative.dev - на котором можно разрабатывать приложения под iOS… twitter.com/i/web/status/1…
9:33React Native это реакт-рендерер, который разрабатывается фейсбуком, но есть множество сторонних
9:34Например, Ink github.com/vadimdemedes/i… - позволяет писать консольные утилиты на React
9:35React Hardware github.com/iamdustan/reac… позволяет управлять железками (например, Arduino) с помощью React
9:37github.com/pmndrs/react-t… - реакт рендерер для Three.js, позволяет крутить 3D-модельки
9:38github.com/diegomura/reac… - рендерер реакта в PDF
9:39Есть целое семейство рендереров в редакторы для дизайнеров, первым из которых был github.com/airbnb/react-s…
9:40Более подробно о разных реакт-рендерарах можно почитать в моей статье dev.to/lessmess/react…
9:41А наиболее полный их список есть тут github.com/chentsulin/awe…
9:41Столь большую гибкость обеспечивает библиотека npmjs.com/package/react-…
9:43Это пакет, который позволяет писать свои собственные рендереры. В нем хост средой называется среда, в которой долже… twitter.com/i/web/status/1…
9:45Для того, чтобы описать, как работать с конкретной хост средой, требуется описать хост-конфиг pic.twitter.com/v6TOCzjmen
9:46Библиотека react-reconciler использует паттерн Visitor, то есть при обходе дерева реакт-элементов будут вызываться… twitter.com/i/web/status/1…
9:48По сути дела требуется, в нужных местах описать, как обрабатывать создание, вставку, удаление элементов
9:51Например, createInstance будет вызван, когда требуется создать новый элемент. На вход придет тип элемента (например… twitter.com/i/web/status/1…
9:52Можно ли написать реакт рендерер без библиотеки react-reconciler?
9:54В теории да, в mvp библиотеки react-figma и в старых рендерарах вроде react-sketchapp (на момент ее создания еще да… twitter.com/i/web/status/1…
9:55Когда мы только, начинали разрабатывать свой рендерер, первая наивная реализация выглядела примерно так:… twitter.com/i/web/status/1…
10:01После того, как babel (или ts-компилятор) трансиплирует jsx, получится множество вложенных вызовов функций React.createElement
10:02React.createElement будет возвращать разные вид данных в зависимости от ситуации, но в целом это уже самый обычный джаваскрипт
10:04Это будет некое дерево, которое можно попытаться рекурсивно обойти. В поле type элементов этого дерева будет приходить тип реакт-элемента.
10:05Это может быть строка для нативных элементов, или функция - для компонентов-оберток
10:06Такую реализацию можно даже попытаться усложнить, но в целом нет смысла - react-reconciler сразу поддерживает множество вещей
10:07Например, там уже заложена поддержка регидратации (когда рендерер запускается снова и не должен пересоздавать созда… twitter.com/i/web/status/1…
10:09Более подробно про то, как написать свой рендерер можно послушать в докладе Софи Альперт youtube.com/watch?v=CGpMlW…
10:11В докладе Ярослава Лосева @losyear на Tver.io youtube.com/watch?v=E1G2rM…
10:12И на последнем @HolyJSconf, есть слайды holyjs-moscow.ru/2020/msk/talks…
10:13Одним из самых серьезных челенджей при написании рендерера была реализация HMR - для ее реализации пришлось менять архитектуру
10:14После перехода на react-reconciler схема выглядела так: pic.twitter.com/WXwp9sHUjU
10:17Мы запускали рендерер в мейн треде и создавали в методах хост-конфига ноды сразу, с помощью плагинного API фигмы figma.com/developers
10:19Это отлично работало, тем что методы хост-конфига не могут быть асинхнронными, а апи фигмы - более-менее синхронно
10:21За исключением HMR. Дело в том, что main-тред в Фигме надежно изолирован в песочнице и не позволяет использовать пр… twitter.com/i/web/status/1…
10:22В фигма main трейд запускается с помощью движка QuickJS, написанном на C. Что само по себе создавало немало проблем… twitter.com/i/web/status/1…
10:25Написан на C, но ведь Фигма web-based, скажете вы. Так вот, они ранят этот движок с помощью WASM. Более подробно по… twitter.com/i/web/status/1…
10:27Так вот, для нормальной работы HMR нам нужен был WebSocket. WebSocket в фигме можно использовать только из UI-треда… twitter.com/i/web/status/1…
10:29Архитектура стала выглядеть примерно так, вместо того, чтобы создавать объекты непосредственно в методах хост конфи… twitter.com/i/web/status/1…
10:31К счастью, есть реализация rpc для фигмы, которая частично облегчила эту задачу: github.com/Lona/figma-jso…
10:32Но все равно, реакт реконсилер с промизами не работает, поэтому пришлось генерить айдишники, чтобы связывать ноды pic.twitter.com/B1CTc4w6jv
10:33Потому что реакт-реконсилер аппендидит за один проход, для этого по сгененрированным id находим ноды и соединяем их pic.twitter.com/lp28fy0MaP
10:35Итоговый реквест выглядел примерно так github.com/react-figma/re…
10:36Это же позволило достаточно легко реализовать поддержку React DevTools чуть позже github.com/react-figma/re…
10:37На всякий слуйчай еще приведу такую картинку, main тред предназначен для работы с документом, UI - для того чтобы р… twitter.com/i/web/status/1…
10:39Не мало хлопот также доставила поддержка стилизации с помощью Yoga Layout. Эта библиотека обеспечаивает поддержку л… twitter.com/i/web/status/1…
10:42Поскольку нам было важно обеспечить совместимость по API с реакт нейтив, мы взяли именно ее react-figma.dev/docs/styling
10:43Проблема была с тем, что Yoga не хотела запускаться внутри main-треда, пришлось ее загонять в UI-тред.
10:44На вход - JSON-дерево c элементами и их стилями, на выходе абсолютные координаты, которые применяются к фигма-нодам
10:45В Фигма постепенно развивается Auto-layout, все больше новых фич. Я думаю, постепенно мы сможем выпилить Yoga Layou… twitter.com/i/web/status/1…
10:47Итог: реакт рендереры это жутко интересно, но местами бывает хардкорно и сложно. Стоит попробовать, если хотите луч… twitter.com/i/web/status/1…
10:50@iGontarev @jsunderhood @lukeed05 Ну даже 10 строк не всегда желательно копипастить. А библиотека - это не просто к… twitter.com/i/web/status/1…
☝️
@iGontarev @jsunderhood @lukeed05 Ну даже 10 строк не всегда желательно копипастить. А библиотека - это не просто к… twitter.com/i/web/status/1…
11:59
Кто как относится к react-native? Мне самому кажется не самым плохим выбором для кроссплатформенной разработки по нескольким причинам:
13:57Достаточно много специалистов и низкий порог вхождения для React разработчиков под веб
13:58Используются настоящие нативные компоненты ос внутри - при необходимости можно добиться более нативного вида
13:59Поддержка крупного вендора - React Native разрабатывается фейсбук
14:00Это JS и можно использовать привычные библиотеки и подходы.
14:00@jsunderhood Для бизнеса react-native это подарок. Потому что разработка гораздо дешевле и быстрее. Для большинства… twitter.com/i/web/status/1…16:14
@jsunderhood В фейсбук это давно просекли. underjs.ru/podcast/2020/1…16:14
На 1:10:13 Абрамов говорит, что больше 700 экран… twitter.com/i/web/status/1…
Поговорим за стейт-менеджмент? Кто что использовал для управления стейтом?
21:18Помимо понятного всем Redux, который до сих преследует в кошмарах и легаси-коде я использовал:
21:19Apollo Client - пожалуй самый энтерпрайзный вариант из не-redux. Энтерпрайзный за счет того, что код на нем получае… twitter.com/i/web/status/1…
21:21Я состовлял awesome-list по Эффектору github.com/effector/aweso…
21:24И писал статью: dev.to/lessmess/react…
21:25Использовал также Стореон github.com/storeon/storeon - офигенно для маленьких проектов
21:26Тысячу лет назад использовал MobX - но не зашло, магия + декораторы (фу-фу-фу) + слишком здоровый бандл
21:27Писал и просто на Реакт хуках/стейте - но не рекомендую, код быстро становится неподдерживаемым.
21:29Что еще интересно?
21:29github.com/artalar/reatom - выглядит очень круто, но я сам, к сожалению, не пробовал. Автор - Артем @artalar_dev
21:30У Артема также есть список с разными стейт-менеджерами gist.github.com/artalar/e5e8a7…
21:31github.com/pmndrs/zustand - мне просто нравится иллюстрация, не пробовал
21:32Интересная встреча по стейт-менеджерам была на @_tverio
youtube.com/watch?v=cUSyJk…
Самый проблемный момент - никто не знает, где же должна находиться бизнес-логика проекта. (Копий на эту тему было с… twitter.com/i/web/status/1…
21:37В принципе, для стейт-менеджемента еще можно использовать вещи, изначально может быть не слишком для него предназначенные
21:41Например, Firebase, в котором можно подписываться на изменения firebase.google.com/docs/database
21:42Можно написать врапер над RxJS rxjs-dev.firebaseapp.com/guide/overview. Уже есть реактивность, надо просто где-то накапливать стейт… twitter.com/i/web/status/1…
21:44@jsunderhood Мало каким сайтам на самом деле нужен стейт менеджмент, если юзать react-query или… twitter.com/i/web/status/1…21:45
Не та! dev.to/lessmess/why-i…
21:47Одно точно могу сказать: стоит выйти из зоны комфорта в виде Redux и попробовать какой-то альтернативный стейт-мене… twitter.com/i/web/status/1…
21:52Одно точно могу сказать: стоит выйти из зоны комфорта в виде Redux и попробовать какой-то альтернативный стейт-мене… twitter.com/i/web/status/1…21:52
@jsunderhood Что насчёт recoil? Я не пробовал, но выглядит интересно, и доклад крутой от автора тут… twitter.com/i/web/status/1…21:54Recoil, a new experimental state management library for React, was just open sourced at React Europe! recoiljs.org
У нас эффектор в продакшене, например. twitter.com/jsunderhood/st…
Так-то у нас тоже. Но мало, из-за того что куча легаси.
У нас эффектор в продакшене, например. twitter.com/jsunderhood/st…
22:02
@jsunderhood Если абстрагироваться от стейт-менеджеров и сконцентрироваться именно на хранении бизнес-логики, то м… twitter.com/i/web/status/1…22:28
# Среда 63 твита
Мне всегда хотелось соединить дизайн и разработку, поэтому стартую тред по дизайн-системам, по мотивам моего доклад… twitter.com/i/web/status/1…
10:22Основополагающей книгой по дизайну для меня является Атомик Дизайн Брэда Фроста bradfrost.com/blog/post/atom…
10:23Его основной концепт - что дизайн должен идти от простого к сложному pic.twitter.com/8B4CVA7cBn
10:24Если очень упрощать, то в соответствии с этим подходом в основе всего должен лежать стайл-гайд. Стайл гайд - это на… twitter.com/i/web/status/1…
10:27В стайл-гайд обычно входят цвета, типографика, размеры/отступы pic.twitter.com/q3aPs1Huyg
10:27Понятно, что одного стайл-гайда мало, и тут нам на помощь приходит UI-кит. UI-кит это набор базовых элементов - кно… twitter.com/i/web/status/1…
10:29UI-кит пользуется значениями из дизайн-системы, например вот тут для компонента кнопки используется цвет: pic.twitter.com/Qj8gwp6tvZ
10:30Как правило, UI-кит содержит множество разных состояний компонентов pic.twitter.com/YbZMxvBVYm
10:31Поверх UI-кита и стайл-гайда также можем строить что-то еще, например сделать каталог компонентов в Storybook и наб… twitter.com/i/web/status/1…
10:33По аналогии с подходом Infrastructure as Code можно использовать подход, который я бы назвал Design System as Code.
10:34В принципе, все описанное выше можно положить в код.
10:35Стайл-гайд - укладывается в обычный JS-конфиг, поскольку это в принципе просто значения
10:35Визуальные элементы можно реализовать в виде компонентов на React. Для кроссплатформенности этот код лучше описывать сразу на react-native.
10:36Такую дизайн-систему можно также будет отобразить в виде каталога компонентов, например, с помощью Storybook.
10:37И отобразить в Figma, для того, чтобы продуктовые дизайнеры могли собирать из нее экраны. Для этого подойдет github.com/react-figma/re…
10:38Как это выглядит и работает, можно посмотреть в примере github.com/react-figma/Pr…
10:39В примере реализован кусочек дизайн-системы ГитХаба Primer styleguide.github.com/primer/
10:40У меня не было задачи перенести задачи полностью, но зато продемонстрировано, как сделать так, чтобы код был single… twitter.com/i/web/status/1…
10:41В самом деле, все остальное использует один и тот же код - и компоненты для веба, для мобильных приложений и для фигма.
10:43Это конечно несколько контр-интуитивно, что мы из кода помещаем что-то в Figma. Нам даже пришлось добавить строчку… twitter.com/i/web/status/1…
10:45Разработчикам хочется генерировать код из дизайна, но к сожалению это пока не слишком-то осуществимо - нет хороших технологий
10:46Есть множество неплохих плагинов, например github.com/bernaferrari/F…
10:47Была демка даже у нас github.com/react-figma/co… - использует Babel для формирования AST дерева
10:48Но большинство решений умеют генерить только под какой-то ограниченный стек, который не факт что вам подойдет
10:49Не умеют работать с изменениями - вам банально захочется пробрасывать пропсы в компонент, для этого придется менять… twitter.com/i/web/status/1…
10:50А потом все это мержить, если после этого на дизайне что-нибудь поменяется
10:51По сути дела, нужно развитие искусственного интеллекта, развитие алгоритмов вроде GPT-3
10:52Так что пока я вижу себе процесс следующим образом: дизайн-систему отрисовывает дизайнер -> переносится в код -> ис… twitter.com/i/web/status/1…
10:54В случае необходимости внесения изменений цикл повторяется.
10:54При дизайнер дизайн-системы, при желании, вполне может научиться править ее код без помощи разработчика.
10:55Код там не такой сложный - конфиг стайл-гайда + "тупые" компоненты. А разработчики могут ревьюить то что получается - это же код!
10:57Слайды из доклада также можно полистать на Спикердеск speakerdeck.com/ilyalesik/kak-…
10:58Using react-native syntax to make Figma components - I'm very impressed. twitter.com/jsunderhood/st…
Yep, react-figma made it possible. 😎
Using react-native syntax to make Figma components - I'm very impressed. twitter.com/jsunderhood/st…
11:43
Подход, который я изложил, не считаю единственно правильным. Но его можно расширять как в ширь так и в глубь с помо… twitter.com/i/web/status/1…
13:13Для описания стайл-гайда я рекомендую использовать System UI Theme Specification github.com/system-ui/them…
13:14С ним легко реализовывать темизацию, и он совместим со множеством уже существующих решений, например его использую… twitter.com/i/web/status/1…
13:15Он без проблем интегрируется с react-figma и другими примитивами с помощью пакета github.com/react-figma/re…
13:16Для описания дизайн-системы можно использовать MDX, вот пример:
github.com/react-figma/re…
Я за то, чтобы была гибкость в выборе инструментов и возможность их комбинировать.
13:19Где вы пишите статьи? Я вот предпочитаю dev.to, потому что он совместим с маркдауном и опен-сорсный
20:08Пробовал медиум, но на нем бесконечные пре-роллы
20:09Интересным вариантом выглядит селф-хостед блог, потому что можно настроить все под себя и подключить любую аналитик… twitter.com/i/web/status/1…
20:10Впрочем платформа может и не дать ничего
20:11Не могу написать текст грамотно без вычитки ни на русском, ни английском, поэтому всегда прошу кого-то помочь
20:12Частично помогает Grammarly и app.gramara.com, но много недочетов все равно остается
20:17Мой английский далек от идеала, но написание статей помогает его учить
20:17Обычно начинаю что-то писать на dev.to, потом выгружаю это в Notion (мардаун), даю кому-нибудь поч… twitter.com/i/web/status/1…
20:18Мне помогает академический опыт, хоть и технологически там все совсем по-другому
20:20Пишешь на LaTeX, потом передаешь это в журнал
20:20Это если, конечно, сильно упрощать. Так-то между этим может быть миллион итераций и работы с научным руководителем.
20:21И конечно же, рецензирование.
20:22Вообще, IT - это в какой-то степени калька с научного мира. Статьи, конференции, доклады - все это уже там было и есть.
20:23Можно даже спрогнозировать, что дальше появится в IT-среде, глядя на научную. Я думаю, постепенно появятся такие ве… twitter.com/i/web/status/1…
20:25При этом, конечно, и научному миру есть чему поучиться, например можно подсмотреть принципы управления и коммуникации из IT.
20:28Не может не радовать, что появляются продукты на стыке - например, deepnote.com - переработанный ноутбук для вычислений
20:30@jsunderhood А ещё лучше показать статистку где 4 последних поста имеют <25 views twitter.com/thekashey/stat…
Все как всегда - мало написать, надо еще и продвинуть.
@jsunderhood А ещё лучше показать статистку где 4 последних поста имеют <25 views twitter.com/thekashey/stat…
20:43
@jsunderhood После истории с деградацией Medium — только свои блоги
Путь настоящего самурая!
@jsunderhood После истории с деградацией Medium — только свои блоги
20:44
Вообще, IT - это в какой-то степени калька с научного мира. Статьи, конференции, доклады - все это уже там было и есть.20:49
У меня еще конечно, всегда очень зависит то, как я пишу, от того, в чем я пишу. Это касается и статей и презентаций
20:51Чем-то похоже на теорию о том, что язык может влиять на экономику - люди по разному думают на разных языках econs.online/articles/ekono…
20:52Даже больше презентаций, в некоторых движках не могу выдавить и слайда
20:53Для презентаций я в основном использую либо shower Вадима Макеева @pepelsbey
20:54Либо Keynote - в нем проще накидывать, но в Шовер - это код, со всеми преимуществами, можно сделать любой эмбед
20:55# Четверг 39 твитов
@jsunderhood @HolyJSconf . @ilialesik спасибо за рекомендацию!Не у всех пока есть доступ к видео. Поэтому давайте… twitter.com/i/web/status/1…
🙏
@jsunderhood @HolyJSconf . @ilialesik спасибо за рекомендацию!
Не у всех пока есть доступ к видео. Поэтому давайте… twitter.com/i/web/status/1…
6:33
@jsunderhood @HolyJSconf . @ilialesik спасибо за рекомендацию!Не у всех пока есть доступ к видео. Поэтому давайте… twitter.com/i/web/status/1…
Я попросил Пашу подробнее рассказать про #ModuleFederation, встречайте “гостевой” тред
@jsunderhood @HolyJSconf . @ilialesik спасибо за рекомендацию!
Не у всех пока есть доступ к видео. Поэтому давайте… twitter.com/i/web/status/1…
10:04
Стартую тред про опен-сорс разработку и ее проблемы, в продолжение последнего эвента на Tver.io. youtube.com/watch?v=ZnsRH9…
15:58Как это часто бывает - мало что-то закодить, на это еще это как-то продвинуть.
15:59Не то чтобы нужно быть каким-то гением маркетинга, чтобы продвигать опен-сорс, но если вы до этого занимались тольк… twitter.com/i/web/status/1…
16:00На эту тему есть уже ставший классическим доклад Андрея @ai Ситника youtube.com/watch?v=DU0LiH…, что-то новое сказать сложно
16:02Разумеется, нужно грамотно оформить ридми - люди оценивают прежде всего глазами, да и поисковую индексацию никто не отменял
16:04Разумеется, если вы сделали какой-то опен-сорс проект - его надо донести до той аудитории, для которой он предназначен
16:05Для этого подойдут чаты в телеграме, Reddit, имейл-рассылки. Важно попасть в тему - было бы странно рассказывать пр… twitter.com/i/web/status/1…
16:07Продвижение - это важная проблема, но основные проблемы начинаются, когда опен-сорс начинает приобретать зрелость и разрастаться.
16:08Прежде всего - непонятно, что с финансированием, "кто платит за банкет". На Tver.io мы ломали копья… twitter.com/i/web/status/1…
16:09Вариантов вообщем-то несколько:
16:101) Разработчик пилит опен-сорс в свободное от работы время. Это обычная история на начальном этапе, но чревата тем,… twitter.com/i/web/status/1…
16:112) Опен-сорс под крылом крупной компании, которая его разрабатывает для своих нужд, которые как правило лишь отчаст… twitter.com/i/web/status/1…
16:14Из минусов - сообщество в этом случае не влияет на развитие библиотеки, поскольку требования формируются из компани… twitter.com/i/web/status/1…
16:15Выражаться это может в том, что пулл-реквест от стороннего разработчика почти не имеет шансов быть принятым, как ви… twitter.com/i/web/status/1…
16:17Также, если библиотека станет не нужна компании - она вероятнее всего умрет.
16:173) Опен-сорс, который нашел способ как монетизироваться. Иногда очень даже неплохо монетизироваться - как в случае… twitter.com/i/web/status/1…
16:20Как правило, речь о неких платных облаках. Так делает очень много кто. Например, ghost.org,… twitter.com/i/web/status/1…
16:22К сожалению, возможно скатывание во вариант 2
16:234) Частные донаты - например, Open Collective + Pateron
16:24А тот же Патреон еще и требует дополнительных усилий на генерацию контента
16:265) Инвестиции компаний-пользователей данного опен-сорса + платные поддержка и консультирование
16:28Это выглядит более интересно, но, конечно трудно осуществимо на ранних этапах. И точно также требует усилий - напри… twitter.com/i/web/status/1…
16:29И отчасти похоже на вариант 3
16:316) Фонды и грантовая поддержка. Примеры - Apache и Linux
16:33Этот вариант мне кажется наиболее перспективным в будущем, поскольку давно зарекомендовал себя в других сферах (нау… twitter.com/i/web/status/1…
16:35Он похож на вариант 5, с той разницей, что появляется третья сторона, которая решает как должны распределяться средства
16:36У этого есть как плюсы так и минусы.
16:36Из минусов - могут возникать вопросы к тому, как именно распределяется финансирование - точно ли это справедливо
16:37Из плюсов - компании спонсоры имеют меньше влияния на распределение средств, меньше соблазна погнаться за сиюминутн… twitter.com/i/web/status/1…
16:397) Государство. ИТ-сфера склонна не любить государство (и на то есть основание), но в конечном итоге именно оно печ… twitter.com/i/web/status/1…
16:41Опен-сорс - это понятное общественное благо и довольно давно известно, что вложения в общественное благо идут на по… twitter.com/i/web/status/1…
16:44Поскольку опен-сорс - это инфраструктура, на которой сейчас держиться пол-интернета, его развитие косвенно помогает развитию все остального
16:46Развитие опен-сорса - это появление новых инструментов для разработки, которые в свою очередь позволяют работать бо… twitter.com/i/web/status/1…
16:49@jsunderhood Наверно треть всего времени, что у меня уходит на konvajs.org я трачу на продвижение. В ос… twitter.com/i/web/status/1…16:51
@jsunderhood Почти всё отстальное время работы над Open Source проектом - это поддержка сообщества. Ответы на комме… twitter.com/i/web/status/1…17:08
Только 34% разработчиков на Гитхабе из Северной Америке. Почему же мы говорим только про политику США в опенсорсе?… twitter.com/i/web/status/1…20:01
# Пятница 46 твитов
Локальные сообщества - это прекрасный пример того, что разработчики, которых раньше считали чуть-ли не социопатами… twitter.com/i/web/status/1…
13:06Tver.io появилось почти 10 лет назад. Спойлер - в декабре планируем отмечать юбилей: pic.twitter.com/d62KWv5b40
13:07При этом активно участвовать в организации сообщества я начал примерно 2.5 года назад
13:08Начал я с того, что просто пришел и попросил дать возможность повести инстаграм сообщества. В то время я как раз ак… twitter.com/i/web/status/1…
13:10Поскольку я визуал и эстетика для меня очень важна, через какое-то время я запустил редизайн сообщества. Первое, чт… twitter.com/i/web/status/1…
13:12Дизайн обложек до: pic.twitter.com/HXHHqL2fjA
13:13Первая обложка в редизайне, которую сделала дизайнер и (по совместительству моя жена) @Lera_Lesik, выглядел так: pic.twitter.com/PH2HOzmC4M
13:16В то время мы называли события по названиям событий или по праздникам, которые были в этот день. 18 октября - Совет… twitter.com/i/web/status/1…
13:18В марте 2021 года @Lera_Lesik сделала редизайн логотипа, он стал таким: pic.twitter.com/SwjzMH29By
13:21И например, во варианте для стикеров: pic.twitter.com/NRXgPZWcMl
13:22Постепенно события стали становится более специализированными, под конкретную тему, например… twitter.com/i/web/status/1…
13:24Рос и уровень событий - мы обзаводились новой техникой и сами становились опытнее. Рос и уровень спикеров, которых мы приглашали.
13:26Начали делать разные эксперименты, например, на Tver.io Makers Meetup люди рассказывали исключитель… twitter.com/i/web/status/1…
13:27Короновирус, который пришел в РФ в начале 2020-года, конечно, сильно вмешался в работу сообщества.
13:30Первым пострадал Tver.io JavaScript Meetup meetup.com/tverio/events/…
13:31Нам пришлось срочно переводить событие полностью в онлайн. Начали использовать сетап, который используем и до сих п… twitter.com/i/web/status/1…
13:35Стало понятно, что классический формат митапов - 2-3 доклада + вопросы, не совсем хорош для онлайна.
13:36Начали делать дискуссионные клубы по темам, первым из них стал No Code Talks meetup.com/tverio/events/…
13:38Особое место у нас всегда занимала фронтенд разработка и JS. Такие события всегда набирали самое большое число зрит… twitter.com/i/web/status/1…
13:40Кажется, что делать события просто, но на самом деле это работа, которая делится на множество направлений.
13:47Если совсем упрощать - делится на операционные вещи и на содержательную часть.
13:48Операционная часть:
13:50В доковидное время к этому еще добавлялись:
13:51Содержательная часть:
13:54Я много занимался выбором тем и приглашением и приглашением спикеров.
13:57Я редко отталкиваюсь от запроса аудитори, скорее всегда больше ориентировался на свое внутреннее ощущение в выборе тем.
13:58Старался немного "заглянуть в будущее" и понять, что будет важно через год или два
13:59Часто мне мог просто нравится какой-то спикер, а все остальное мероприятие проектировалось из "основного" доклада
14:00Важная вещь, которую мы лишились из-за короновируса - это, конечно, afterparty.
14:01На них можно было узнать все интересующие вещи от спикеров и вообще круто пообщаться с единомышленниками.
14:02Тоже об этом думали. И сделали первую версию «общалки» для #jokerconf и других конференцийТеперь конференции на… twitter.com/i/web/status/1…
16:19На них можно было узнать все интересующие вещи от спикеров и вообще круто пообщаться с единомышленниками.
Если наконец хотите узнать, что такое монады - доклад @_bravit
youtube.com/watch?v=IkXg_m…
Про производительность Postrges, это скорее воршоп. На английском языке youtube.com/watch?v=xqTNce…
17:00Продвижение опен-сорс проектов @ai youtube.com/watch?v=DU0LiH…
17:01Доклад @_tikhon про типографику youtube.com/watch?v=_2VxlB…
17:04Толком-то фронтенда нет, но ничего, сейчас наверстаем.
17:07Доклад @ovrweb про асинхнронность youtube.com/watch?v=PZiEFH… - по длине и хардкорности скорее ближе к HolyJS.
17:09Про Вебпак и линзы от @AntonK52 youtube.com/watch?v=qcj2bX…
17:11Про WASM от @pgurtovaya youtube.com/watch?v=8MOZ44…
17:13Про стилизацию от @_lttb youtube.com/watch?v=b7vBKp…
17:16Не совсем доклад, но все равно много полезного - в дискуссии про стейт-менеджемент: youtube.com/watch?v=cUSyJk…
17:17Доклад "Семантика для циников" Вадима Макеева youtube.com/watch?v=z91F33…
17:19Если что-то не попало в список, не значит, что оно было хуже. Всех спикеров кто у нас выступал, мы ценим.☝️
17:21# Суббота 27 твитов
Помимо дизайн-систем, у github.com/react-figma/re… есть еще интересные интерсные применения, о чем расскажу в треде ->
10:44Библиотеку можно использовать для автоматизации рутинных дизайнерских операций, можно легко строить интеграции разл… twitter.com/i/web/status/1…
10:48В addtivika.ru мы разрабатываем настольную игру для обучения 3D-печати, в которой есть множество карточк… twitter.com/i/web/status/1…
10:50Карточек довольно много - 100 штук, но все они укладываются в 4 вида шаблонов. pic.twitter.com/B39SQVirOE
10:53Дизайн делается в Фигма и по сути дела он двойного назначения:
10:541) Выгрузка карточек на печать в PDF
10:552) Возможность поиграть в игру прямо в Figma, перетаскивая карточки как компоненты из панели ассетов. Это стало оче… twitter.com/i/web/status/1…
10:57Поддерживать кучу карточек в актуальном состоянии и тем более вносить изменения в их дизайн оказалось трудной задач… twitter.com/i/web/status/1…
10:59Мы пришли к решению этой проблемы:
10:59Сложили все карточки в виде строк в Airtable, каждый признак - это колонка. pic.twitter.com/98bNJMHBPh
11:01Airtable удобен своим API, и большим числом типов данных для ячеек. Например, там есть файл-аплоад. airtable.com/developers
11:03Для того, чтобы выгрузить данные в фигму, подняли проект из бойлерплейта github.com/react-figma/re…
11:05Определили компоненты для карточек и их стили. Проект не в опен-сорсе, но могу показать, например, компонент для ка… twitter.com/i/web/status/1…
11:08Визуально он выглядит вот так: pic.twitter.com/EfbytEq6f1
11:09Выгрузить карточки из Аиртейбл достаточно просто, надо описать метод, который будет ходить в таблицу с принтерами: pic.twitter.com/U7bine72EE
11:12А потом просто пробросить данные в компонент: gist.github.com/ilyalesik/ca34…
11:14Для чего я использовал свою же библиотечку github.com/ilyalesik/reac…
11:15После запуска плагина в фигме, будут все принтеры: pic.twitter.com/HMRcC34f4n
11:16После переноса всех карточек картина выглядела так, больше всего карточек малых заказов: pic.twitter.com/nMJSuPojbe
11:18Мне всегда хотелось соединить дизайн и разработку, поэтому стартую тред по дизайн-системам, по мотивам моего доклад… twitter.com/i/web/status/1…
Помимо автоматизации мы получили еще возможность портирования игру на другие платформы, например в веб, поскольку б… twitter.com/i/web/status/1…
Мне всегда хотелось соединить дизайн и разработку, поэтому стартую тред по дизайн-системам, по мотивам моего доклад… twitter.com/i/web/status/1…
11:21
Может показаться, что получилась разработка по принципу "когда в руках молоток, все вокруг становится подозрительно похожим на гвоздь".
11:23Но реальное применение способствовало и развитию самой библиотеки, поскольку в процессе я находил баги react-figma и сразу их правил.
11:24Это потянуло за собой и улучшение DX, например фича с HMR (hot module replacement) была инспирирована именно опытом с Additivka.
11:26Могут быть более простые применения у этого подхода - например, можно фетчить актуальный курс валюты и отображать его
11:27Или более сложные, например, когда при разработке новых экранов приложения используются реальные данные из АПИ
11:28Решил дополнить отличный тред @sashasushko, инициированный @andrey_sitnik, и тоже рассказать о процессах и принципа… twitter.com/i/web/status/1…
Интересный тред про процессы на удаленке.
Решил дополнить отличный тред @sashasushko, инициированный @andrey_sitnik, и тоже рассказать о процессах и принципа… twitter.com/i/web/status/1…
17:34
Happy 25th birthday #JavaScript 🎉🎉🎉21:58Incredible history timeline jetbrains.com/lp/javascript-… from Netscape to space by… twitter.com/i/web/status/1…
# Воскресенье 82 твита
В воскресенье хочется чего-то лайтового, поэтому встречайте пленочной фотографии тред ->
9:43Сразу скажу, что на мои снимки можно посмотреть у меня в инстаграме - instagram.com/ilialesik/
9:45Мое увлечения пленкой началось в 2014 году, когда мне «по наследству» достался Зенит ЕТ с объективом Гелиос 44М. pic.twitter.com/HiuMUBK3LW
9:47К нему также шел комплектный чехол и вспышка Электроника ФЭ-27 pic.twitter.com/YZzDne1kyv
9:49Нем могу сказать, что советская фототехника отличалась особой надежностью - но весь комплект до сих пор в работоспо… twitter.com/i/web/status/1…
9:53Немного снимков того периода, ламповость и фирменное "закручивание" Гелиоса на месте:
9:55Тогда я использовал не дорогие позиции пленок - Kodak Color 200 и Fujicolor C200 и проявлял/сканировал их в местной фотолаборатории.
10:00Снимал я довольно мало - примерно по одной пленке за полгода.
10:02Но все поменялось в 2015-м - я купил камеру, на которую снимаю до сих пор:
10:03Это Nikon F100 с автофокусным объективом 50mm 1:1.8D: pic.twitter.com/qQjTAuSzyt
10:10Это автофокусная автоматическая модель 1999-года, которая позиционировалась как полупрофессиональная.
10:13После механического Зенита эта камера с серийной съемкой 4.5 кадра в секунду выглядела как автомат. По эргономике о… twitter.com/i/web/status/1…
10:15Но больше всего впечатлял огромный оптический видоискатель - он больше, чем даже у большинства современных зеркалок.
10:18Вот фотографии, которые я делал на него тогда:
10:19Снимал я тогда уже на более дорогие пленки, например, Kodak Ektar, CineStill 800T.
10:28Постепенно мне захотелось экспериментов и я начал пробовать снимать на черно-белую пленку. Первой, которую я взял - была ilford pan 100 ->
10:31С ч/б пленкой было сложнее работать, поскольку фотолаборатория у нас в городе умела проявлять только цвет. Да и ска… twitter.com/i/web/status/1…
10:34Даже интересные изначально снимки выглядели каким-то блеклыми, что-ли. Выправить сканы из лаборатории не получалось… twitter.com/i/web/status/1…
10:37Я решил проявлять и сканировать пленки сам, чтобы иметь полный контроль над процессом.
10:38Самое основное - бачок для проявки pic.twitter.com/5y0vyP7T46
10:41Вишенка на торте: сканер для пленок. У меня недорогая модель, plustek opticscan 8100 pic.twitter.com/4U4SMut2fE
10:54Сканеры - самая дорогая штука во всем пленочном процессе, бывают модели за сотни тысяч рублей.
10:55К нему идет программа SilverFast, которая хоть и довольно архаична, но вполне себе работает на последней мак-оси: pic.twitter.com/LkZz7ztjQx
10:58Немного снимков после перехода на новый процесс pic.twitter.com/lJNtutlE4S
11:03Основная пленка, которую я начал применять - ilford hp5+. Оно отлично работает с пуш-процессом - это когда, пленка… twitter.com/i/web/status/1…
11:08Экспериментировал я и с пленками большой чувствительности, например, ilford delta 3200. На них как правило очень мн… twitter.com/i/web/status/1…
11:13Поскольку в сильверфаст неудобно обрабатывать фотографии, я довожу их в лайтруме.
11:15В дополнительной обработке я не вижу ничего плохого, поскольку исторически снимки могли довольно сильно ретушироват… twitter.com/i/web/status/1…
11:19Это часть творческого процесса. Немного жалею, что не попробовал оптическую печать, мой аналогово-цифровой процесс - конечно не совсем "тру"
11:21Еще из интересного - на пленку можно делать мультиэкспозицию, это когда один кадр экспонируется несколько раз. Эксп… twitter.com/i/web/status/1…
11:25Последние годы люблю снимать вертикально, вот кадры с последней пленки: pic.twitter.com/lT7yzgsErl
11:27Фотографии я раньше выкладывал еще и вк, там также есть множество специализированных групп по пленки, в которые был… twitter.com/i/web/status/1…
11:29Все хочу сделать сайт с фотографиями, но руки как всегда не доходят.
11:30Последнее время пленочная фотография стало очень доступной - есть много специализированных магазинов и лабораторий,… twitter.com/i/web/status/1…
11:31Например, лаборатория Среда sreda.photo/lab/develop_sc…
11:31При этом сами камеры и пленки стали заметно дороже. Когда я покупал свой Никон в 2015 году, он стоил 6500. Сейчас т… twitter.com/i/web/status/1…
11:32Еще из экспериментов, мне бы конечно, хотелось попробовать поснимать на средний формат. Например, на Mamiya c330 pic.twitter.com/z72rwrJzrp
11:34Почему же я не перешел на цифру?
11:41Так исторически сложилось - у меня уже выработался некий подход и видение того, что я хочу получать. При переходе н… twitter.com/i/web/status/1…
11:43Для меня пленка - это способ борьбы с выгоранием и напряжением на работе. Ничего так не перезагружает, как пойти по… twitter.com/i/web/status/1…
11:44А еще даже на камеру из 60-х годов можно снять так, что айфон будет нервно курить в сторонке. Если вы были на выста… twitter.com/i/web/status/1…
11:51У меня айфон 11 и он снимает как говно (простите)
11:52Понятно, что если сравнивать с современными цифровыми камерами, малый формат пленки (35мм) проиграет. Но если взять… twitter.com/i/web/status/1…
11:53Кроме того, пленка не накапливает шум на длинных выдержках, поэтому ее до сих пор активно применяют в астрофотографии.
11:54Интересный факт - многие пленочные камеры могут стоит сотни тысяч рублей и сегодня. Небольшая подборка интересных камер:
17:19Hasselblad XPan - позволяет фигачить вот такие широкие кадры. Стоимость - ~200к рублей. photosale.ru/sale/fotoappar… pic.twitter.com/IHVqlb4ohl
17:22Contax T2 - компактная камера из титана с объективом Carl Zeiss 38/2.8. ~70к рублей на ибей pic.twitter.com/YWsvcKLk2h
17:25Rollei 35 - одна из самых маленьких 35мм камер. pic.twitter.com/K0PbxgxbEX
17:28Японская камера-пулемет времен второй мировой войны. Использовалась как симулятор для экипажей самолетов - по снимк… twitter.com/i/web/status/1…
17:31<--- $5000 на ибей
17:32Pentax 6x7, он же 67 - здоровенная и очень красивая среднеформатная камера (за счет деревянной ручки). Поговаривают… twitter.com/i/web/status/1…
17:36Nikon F3 - оч красивая камера, дизайн разработан легендарным Джорджетто Джуджаро. Имеет съемную призму и кучу модиф… twitter.com/i/web/status/1…
17:39Одна из модификаций, F3 NASA, с магазином на 250 кадров - летала в космос. pic.twitter.com/NKkQ3m4ePb
17:41Hasselblad 500 C/M и похожие - еще одна легендарная камера, модификации которой летали в космос pic.twitter.com/BL7JWOCNhD
17:45Это системная камера, есть куча разных "задников". Например, можно поставить задник, который будет снимать на кассе… twitter.com/i/web/status/1…
17:47Одна из моих "аватарок" была снята на эту камеру: pic.twitter.com/GFJHER6yQw
17:49Это средний, 120-й формат пленки, размер кадра 6x6см. Большинство сталкивалось с форматом 35mm, для сравнения, разм… twitter.com/i/web/status/1…
17:52Еще одна красивая камера - Rolleiflex 2.8f. Это среднеформатная зеркальная камера с двумя объективами - верхний для… twitter.com/i/web/status/1…
17:58Этот список я подытожу камерой Leica M3 - легендарная дальномерная камера, заточенная под уличную фотографию pic.twitter.com/L1t7iDXKhD
18:04Всем спасибо за внимание, это была отличная неделя! С вами был @ilialesik, подпишитесь на меня в твиттере и во всем остальном --->
20:51На GitHub: github.com/ilyalesik
20:51На ютуб канал Tver.io youtube.com/c/TverIO?sub_c…
20:53Поставьте звездочку github.com/react-figma/re… - до 1к осталось совсем чуть-чуть
20:56По любому вопросу можно также постучаться в телеграм - t.me/ilialesik
20:58Happy coding! 🙌
20:59# Ссылки
github.com
- https://github.com/react-figma/react-figma
- https://github.com/react-figma/react-figma-boilerplate
- https://github.com/react-figma/react-figma/blob/master/contributing.md#running-webpack-at-watch-mode
- https://github.com/ilyalesik/react-fetch-hook
- https://github.com/lessmess-dev/react-media-hook
- https://github.com/lessmess-dev/effector-localstorage
- https://github.com/lessmess-dev/eslint-config/blob/master/lib.js
- https://github.com/molefrog/wouter
- https://github.com/ibitcy/eo-locale
- https://github.com/omgovich/react-colorful
- https://github.com/talentlessguy/tinyhttp
- https://github.com/storeon/storeon
- https://github.com/ai/nanoid
- https://github.com/vadimdemedes/ink
- https://github.com/iamdustan/react-hardware
- https://github.com/pmndrs/react-three-fiber
- https://github.com/diegomura/react-pdf
- https://github.com/airbnb/react-sketchapp
- https://github.com/chentsulin/awesome-react-renderer
- https://github.com/Lona/figma-jsonrpc
- https://github.com/react-figma/react-figma/pull/293
- https://github.com/react-figma/react-figma/pull/319
- https://github.com/effector/effector
- https://github.com/effector/awesome
- https://github.com/artalar/reatom
- https://github.com/pmndrs/zustand
- https://github.com/react-figma/PrimerDemo
- https://github.com/bernaferrari/FigmaToCode
- https://github.com/react-figma/code-generator
- https://github.com/system-ui/theme-specification
- https://github.com/react-figma/react-primitives-box
- https://github.com/react-figma/react-figma/tree/master/examples/mdx
- https://github.com/ilyalesik
www.youtube.com
- https://www.youtube.com/watch?v=0EJTApFVB7Y
- https://www.youtube.com/watch?v=CGpMlWVcHok
- https://www.youtube.com/watch?v=E1G2rMKq8lc
- https://www.youtube.com/watch?v=cUSyJk6k2rk
- https://www.youtube.com/channel/UC2Jwo4Q0s-ucjGseHP8XUSQ
- https://www.youtube.com/watch?v=ZnsRH9NVqDw
- https://www.youtube.com/watch?v=DU0LiH61PnQ
- https://www.youtube.com/watch?v=IkXg_mjNgG4
- https://www.youtube.com/watch?v=xqTNceHxkIo
- https://www.youtube.com/watch?v=_2VxlBbotJM
- https://www.youtube.com/watch?v=PZiEFHMezBM
- https://www.youtube.com/watch?v=qcj2bX4sB9E
- https://www.youtube.com/watch?v=8MOZ44j_zFw
- https://www.youtube.com/watch?v=b7vBKp8D0vs
- https://www.youtube.com/watch?v=z91F33YJvPE
- https://www.youtube.com/c/TverIO?sub_confirmation=1
other
- https://holyjs-moscow.ru/2020/msk/talks/5udhzhsrgbzzg3r496hmge/
- https://holyjs-moscow.ru/2020/msk/talks/5xx2i0vcleyeatztadt6ap/
- https://holyjs-moscow.ru/2020/msk/talks/6o35zzxqtqwadjvh8kpyt8/
- http://additivka.ru/
- https://brainhub.network/
- https://ramdajs.com/docs/#add
- https://reactnative.dev/
- https://dev.to/lessmess/react-renderers-an-overview-34f3
- https://dev.to/lessmess/why-i-choose-effector-instead-of-redux-or-mobx-3dl7
- http://dev.to/
- https://www.npmjs.com/package/react-reconciler
- http://tver.io/
- http://tver.io/
- https://www.figma.com/developers
- https://react-figma.dev/docs/styling
- https://underjs.ru/podcast/2020/11/25/project-flight.html#
- https://gist.github.com/artalar/e5e8a7274dfdfbe9d36c9e5ec22fc650
- https://gist.github.com/ilyalesik/ca347b1dfd170b69ca50260cd61e587b#file-printers-tsx
- https://firebase.google.com/docs/database
- https://rxjs-dev.firebaseapp.com/guide/overview
- https://logux.io/
- https://rtk-query-docs.netlify.app/
- https://bradfrost.com/blog/post/atomic-web-design/
- https://styleguide.github.com/primer/
- https://speakerdeck.com/ilyalesik/kak-sozdat-mul-tiplatformiennuiu-dizain-sistiemu-na-react
- https://app.gramara.com/
- https://deepnote.com/
- https://econs.online/articles/ekonomika/ekonomika-yazyka/
- https://ghost.org/
- https://konvajs.org/
- https://www.meetup.com/tverio/events/268975783/
- https://www.meetup.com/tverio/events/270783368/
- https://www.meetup.com/tverio/events/271917823/
- http://addtivika.ru/
- https://airtable.com/developers
- https://www.jetbrains.com/lp/javascript-25/
- https://www.instagram.com/ilialesik/
- https://sreda.photo/lab/develop_scan/price
- https://www.photosale.ru/sale/fotoapparaty_plenochnye/hasselblad_xpan_b_u_fs_202013_/
- https://t.me/ilialesik
- https://lesik.dev/