Коробка от вендора
У меня тут накопились некоторые мысли и я решил немного побубнить на околоэкономическую тематику.
Как вы относитесь к использованию компаниями вендорских "коробочных решений"? Мне довелось неоднократно наблюдать кейсы, в которых компания за немыслимые деньги приобретает техническое решение, которое должно решить их проблему. После интеграции проходит некоторое время и вдруг выясняется, что эта коробка не очень-то соответствует требованиям бизнеса. Разработчики судорожно пытаются что-то наколхозить сверху, но коробка оказывается весьма неповоротливой, а вендор всячески избегает доработок и улучшения API — их основной целью всё-таки было продать продукт, а не поддерживать его. В моём наивном представлении о мире такая бизнес-модель не имеет права на существование.
Мир фронтенда очень открытый и построен на опенсорсе. В NPM помимо мусорных пакетов можно найти и множество очень крутых вещей, авторы которых умудряются получать зарплату несмотря на работу над опенсорсным проектом.
Некоторое время назад я наткнулся на опенсорсную библиотеку reactflow, бизнес-модель которой предполагает платную поддержку и обучение, но бесплатное использование — весь её исходный код можно найти на GitHub и при желании кастомизировать что угодно под свои задачи. Этот подход выглядит гораздо более дружелюбно и очень надеюсь, что он жизнеспособен.
Что вы думаете на эту тему? Возможно ли вендорам пересмотреть свою политику относительно продаваемых решений или крупным компаниям суждено постоянно наступать на грабли и изобретать свои велосипеды?
У меня тут накопились некоторые мысли и я решил немного побубнить на околоэкономическую тематику.
Как вы относитесь к использованию компаниями вендорских "коробочных решений"? Мне довелось неоднократно наблюдать кейсы, в которых компания за немыслимые деньги приобретает техническое решение, которое должно решить их проблему. После интеграции проходит некоторое время и вдруг выясняется, что эта коробка не очень-то соответствует требованиям бизнеса. Разработчики судорожно пытаются что-то наколхозить сверху, но коробка оказывается весьма неповоротливой, а вендор всячески избегает доработок и улучшения API — их основной целью всё-таки было продать продукт, а не поддерживать его. В моём наивном представлении о мире такая бизнес-модель не имеет права на существование.
Мир фронтенда очень открытый и построен на опенсорсе. В NPM помимо мусорных пакетов можно найти и множество очень крутых вещей, авторы которых умудряются получать зарплату несмотря на работу над опенсорсным проектом.
Некоторое время назад я наткнулся на опенсорсную библиотеку reactflow, бизнес-модель которой предполагает платную поддержку и обучение, но бесплатное использование — весь её исходный код можно найти на GitHub и при желании кастомизировать что угодно под свои задачи. Этот подход выглядит гораздо более дружелюбно и очень надеюсь, что он жизнеспособен.
Что вы думаете на эту тему? Возможно ли вендорам пересмотреть свою политику относительно продаваемых решений или крупным компаниям суждено постоянно наступать на грабли и изобретать свои велосипеды?
May 29, 2023
17 июня буду рассказывать на Я ❤️ фронтенд о своих исследованиях на тему сборки библиотек. Планирую сделать этот доклад сиквелом к своей статье про пакетные менеджеры. Приходите послушать)
Я 💛 Фронтенд 2023
В пятый раз соберём фронтенд-сообщество, чтобы обсудить новости веба, поделиться опытом и провести время в отличной компании. Будут доклады про Node.js, производительность, доступность и многое другое, а также подведём итоги CTF.
June 7, 2023
Как и обещал, публикую список ссылок к своему докладу на Я ❤️ фронтенд:
- You may not need a bundler
- Pure ESM package
- Named imports in CommonJS
- ESM in NodeJS Typescript
- Types for submodules
- Module resolution: bundler
- Vite library mode
- Пример исправления для поддержки SSR
- Не нужно бандлить библиотеку
- Rollup preserveModules
- ComonJS vs ESM
- Dual Package Hazard
- Валидация package.json
Список не исчерпывающий, так что по любым вопросам добро пожаловать в комментарии)
- You may not need a bundler
- Pure ESM package
- Named imports in CommonJS
- ESM in NodeJS Typescript
- Types for submodules
- Module resolution: bundler
- Vite library mode
- Пример исправления для поддержки SSR
- Не нужно бандлить библиотеку
- Rollup preserveModules
- ComonJS vs ESM
- Dual Package Hazard
- Валидация package.json
Список не исчерпывающий, так что по любым вопросам добро пожаловать в комментарии)
YouTube
Заботливый иннерсорс, Никита Балихин
June 18, 2023
Наткнулся недавно на такой твит. Очень понравилась формулировка, поэтому делюсь в исходном виде.
June 29, 2023
Состояние гонки
Постарался разбавить статью интерактивными демками, чтобы было нагляднее. Надеюсь, вам понравится. 😊
Постарался разбавить статью интерактивными демками, чтобы было нагляднее. Надеюсь, вам понравится. 😊
Hacknote.js
Состояние гонки
Асинхронные операции бывают непредсказуемыми, поскольку физически могут выполняться параллельно основному потоку, поэтому очень важно следить за актуальностью данных, которые они нам возвращают.
July 4, 2023
Forwarded from FrontendConf конференция
Motion-дизайн для фронтенд-разработчика рассмотрим на докладе Никиты Балихина
⠀
Когда мы говорим об анимациях в вебе, на ум сразу приходят CSS-анимации — это достаточно простой и эффективный инструмент.
⠀
Но если мы хотим сделать действительно сложную и красивую анимацию, нам могут понадобиться более мощные инструменты для motion-дизайна вроде After Effects.
⠀
В докладе рассмотрим, как фронтенд-разработчику разобраться в этих инструментах и как подружить их с веб-технологиями.
⠀
Встречаемся 2 и 3 октября в Москве на FrontendConf 2023 🙌
⠀
✅ Программа конференции, расписание и билеты на сайте в описании канала @FrontendConfChannel
⠀
Когда мы говорим об анимациях в вебе, на ум сразу приходят CSS-анимации — это достаточно простой и эффективный инструмент.
⠀
Но если мы хотим сделать действительно сложную и красивую анимацию, нам могут понадобиться более мощные инструменты для motion-дизайна вроде After Effects.
⠀
В докладе рассмотрим, как фронтенд-разработчику разобраться в этих инструментах и как подружить их с веб-технологиями.
⠀
Встречаемся 2 и 3 октября в Москве на FrontendConf 2023 🙌
⠀
Please open Telegram to view this post
VIEW IN TELEGRAM
August 30, 2023
У меня есть ежегодная традиция делать короткие (30-60 секунд) новогодние видосы в After Effects. Видосы довольно кринжовые, но мне кажется, хорошо создают новогоднее настроение. :)
Видос на этот новый год уже готов и дожидается премьеры, а пока можете посмотреть видосы прошлых лет, которые я собрал в плейлист, а также запись вышеупомянутого доклада про Motion-дизайн с Frontend Conf, который в том числе посвящён After Effects.
Видос на этот новый год уже готов и дожидается премьеры, а пока можете посмотреть видосы прошлых лет, которые я собрал в плейлист, а также запись вышеупомянутого доклада про Motion-дизайн с Frontend Conf, который в том числе посвящён After Effects.
YouTube
2024 Dragon Lair
Огнеупорное снаряжение будет не лишним.
Использованная музыка:
Mick Gordon - BFG Division (https://www.youtube.com/watch?v=QHRuTYtSbJQ)
MAKAVELI HARDSTYLE - Lights (Sped Up) (https://www.youtube.com/watch?v=SJDFTjIKVAM)
Использованная музыка:
Mick Gordon - BFG Division (https://www.youtube.com/watch?v=QHRuTYtSbJQ)
MAKAVELI HARDSTYLE - Lights (Sped Up) (https://www.youtube.com/watch?v=SJDFTjIKVAM)
December 30, 2023
Используете ли вы в своём коде префиксы для названий типов?
Anonymous Poll
12%
Использую префикс "I" для наименования интерфейсов
33%
Использую префиксы "I", "T", "E" для наименования интерфейсов, типов и енумов соответственно
53%
Не использую префиксы
2%
Свой вариант в комментариях
January 9, 2024
В поисках рантайма для Typescript
В подавляющем большинстве случаев я стараюсь держать любой код в проекте поддерживаемым и документированным, поэтому даже всякие утилитарные скрипты для сборки или кодогенерации пишу на Typescript.
Долгое время для запуска таких скриптов я использовал ts-node, который считал стандартом де-факто для решения этой задачи, но недавно наткнулся на утилиту tsx.
На поиск нового решения меня сподвигла кривая поддержка ESM в ts-node (в Node.js 18 у меня не завелось). С tsx тот же самый код запустился без лишних танцев с бубном. В качестве приятного бонуса я получил watch-mode из коробки.
Из минусов обнаружил только отсутствие в tsx проверки типов из коробки. Но, как я уже упомянал, всё ещё только tsc умеет делать проверку типов, поэтому при необходимости придётся запускать его отдельно — именно это по сути из коробки делает ts-node, но на мой взгляд проверка типов должна быть скорее частью пайплайна тестов, а не сборки и тем более запуска, поэтому минус не считаю значительным.
Автор tsx также сделал репозиторий со сравнением различных инструментов для запуска Typescript-кода.
Приходится ли вам запускать Typescript-код без бандлера? Какие инструменты вы для этого используете?
В подавляющем большинстве случаев я стараюсь держать любой код в проекте поддерживаемым и документированным, поэтому даже всякие утилитарные скрипты для сборки или кодогенерации пишу на Typescript.
Долгое время для запуска таких скриптов я использовал ts-node, который считал стандартом де-факто для решения этой задачи, но недавно наткнулся на утилиту tsx.
На поиск нового решения меня сподвигла кривая поддержка ESM в ts-node (в Node.js 18 у меня не завелось). С tsx тот же самый код запустился без лишних танцев с бубном. В качестве приятного бонуса я получил watch-mode из коробки.
Из минусов обнаружил только отсутствие в tsx проверки типов из коробки. Но, как я уже упомянал, всё ещё только tsc умеет делать проверку типов, поэтому при необходимости придётся запускать его отдельно — именно это по сути из коробки делает ts-node, но на мой взгляд проверка типов должна быть скорее частью пайплайна тестов, а не сборки и тем более запуска, поэтому минус не считаю значительным.
Автор tsx также сделал репозиторий со сравнением различных инструментов для запуска Typescript-кода.
Приходится ли вам запускать Typescript-код без бандлера? Какие инструменты вы для этого используете?
January 10, 2024
8 июня расскажу на Я ❤️ Фронтенд об инструменте, который используется в нашей компании для сборки микрофронтендов.
В программе:
- ткнём палкой в давным давно мёртвый Create React App
- проследим мотивацию, историю создания, развития и внедрения на ~60 проектов нашего инструментария для сборки
- переймём лучший опыт похожих проектов
- конечно же не забудем проявить заботу к коллегам
В программе:
- ткнём палкой в давным давно мёртвый Create React App
- проследим мотивацию, историю создания, развития и внедрения на ~60 проектов нашего инструментария для сборки
- переймём лучший опыт похожих проектов
- конечно же не забудем проявить заботу к коллегам
Я 💛 Фронтенд
Встречаемся в Москве и онлайн на конференции Я 💛 Фронтенд 2024
March 14, 2024
gpb-app.pdf
39.1 MB
Во время моего выступления на Я 💛 Фронтенд с презентацией произошли небольшие проблемки (абсолютно всё, что в ней могло сломаться, сломалось), но, полагаю, ценность доклада от этого не убавилась. Хочу сказать всем спасибо за обратную связь и действительно хорошие и интересные вопросы.
Прикрепляю к этому посту PDF со статической версией того, как должна была выглядеть презентация со всеми релевантными ссылками и парой бонусных слайдов и вероятно через некоторое время сделаю режиссёрскую версию доклада.
Если у вас остались неотвеченные вопросы, с радостью отвечу на них в комментариях😉
Прикрепляю к этому посту PDF со статической версией того, как должна была выглядеть презентация со всеми релевантными ссылками и парой бонусных слайдов и вероятно через некоторое время сделаю режиссёрскую версию доклада.
Если у вас остались неотвеченные вопросы, с радостью отвечу на них в комментариях😉
June 9, 2024
А вот и та самая режиссёрская версия доклада, в которой презентация выглядит ровно так, как я её задумывал. Принципиально в ней ничего нового нет, но не зря же я старался)
YouTube
Как мы съезжали с CRA (и речь не про Vite) / Никита Балихин
Это Никита Балихин из Газпромбанка и его доклад на «Я💛Фронтенд 2024» — нашей главной фронтенд-конференции. На ней мы обсудили, как делать удобные интерфейсы, использовать популярные и не очень инструменты, правильно относиться к себе и сообществу и строить…
June 21, 2024
Media is too big
VIEW IN TELEGRAM
Пришлось покостылить даже тут)
June 21, 2024
В бете Safari 18 заявлена долгожданная (по крайней мере мной) поддержка View Transitions API, который уже довольно давно поддерживается в Chromium-based бразуерах и по такому поводу я решил сделать небольшой редизайн главной страницы своего блога.
На мой взгляд эта фича вносит огромный вклад в то, чтобы Web-приложения ощущались как нативные и при этом не требует особых вложений с точки зрения разработки (особенно при использовании Astro).
Если у вас есть классные примеры использования этого API, кидайте в комментарии)
На мой взгляд эта фича вносит огромный вклад в то, чтобы Web-приложения ощущались как нативные и при этом не требует особых вложений с точки зрения разработки (особенно при использовании Astro).
Если у вас есть классные примеры использования этого API, кидайте в комментарии)
June 23, 2024
June 23, 2024
June 23, 2024
September 12, 2024
Сказ о внедрении View Transitions
В предвкушении внедрения поддержки View Transitions в Safari я обновил Mac OS и iPad OS до последних версий и... я был крайне разочарован.
Анимации переходов работали совсем не так, как в Chromium-based браузерах — они заметно тормозили, а в некоторых случаях и вовсе перестали работать.
Сперва я подумал "как же Apple могли выкатить в продакшен такую кривую реализацию API?", но, тщательно погуглив, я не обнаружил ни одной подобной жалобы. Это могло значить одно из двух: либо никто кроме меня не ждал внедрения View Transitions в Safari, либо я сделал что-то не так.
И вот опытным путём я выяснил, что огромное влияние на производительность анимации оказывает размер анимируемого элемента. Я пытался создать эффект раскрытия карточки со статьёй в полноценную статью, которая очевидно имеет довольно большую высоту, с которой Chromium-based браузеры справляются без труда, а вот для Safari это непосильная тяжесть — возможно это как-то связано с древней проблемой ограничения на размеры текстур в Open GL, которая приводит к различным артефактам при использовании CSS анимаций.
В итоге временное решение проблемы уместилось в пару строчек кода, но анимации по прежнему выглядят не так плавно, как в Chrome.
(На видео в посте можно увидеть анимации переходов до/после исправления)
В предвкушении внедрения поддержки View Transitions в Safari я обновил Mac OS и iPad OS до последних версий и... я был крайне разочарован.
Анимации переходов работали совсем не так, как в Chromium-based браузерах — они заметно тормозили, а в некоторых случаях и вовсе перестали работать.
Сперва я подумал "как же Apple могли выкатить в продакшен такую кривую реализацию API?", но, тщательно погуглив, я не обнаружил ни одной подобной жалобы. Это могло значить одно из двух: либо никто кроме меня не ждал внедрения View Transitions в Safari, либо я сделал что-то не так.
И вот опытным путём я выяснил, что огромное влияние на производительность анимации оказывает размер анимируемого элемента. Я пытался создать эффект раскрытия карточки со статьёй в полноценную статью, которая очевидно имеет довольно большую высоту, с которой Chromium-based браузеры справляются без труда, а вот для Safari это непосильная тяжесть — возможно это как-то связано с древней проблемой ограничения на размеры текстур в Open GL, которая приводит к различным артефактам при использовании CSS анимаций.
В итоге временное решение проблемы уместилось в пару строчек кода, но анимации по прежнему выглядят не так плавно, как в Chrome.
(На видео в посте можно увидеть анимации переходов до/после исправления)
October 12, 2024
This media is not supported in your browser
VIEW IN TELEGRAM
Для полноты картины упомяну ещё одну проблему, которая мешает полноценному использованию View Transitions — задваивание анимаций перехода при свайпе в Safari на iOs.
С этой проблемой пытались бороться решениями разной степени костыльности ещё во времена актуальности React Transition Group, но с приходом View Transitions эта проблема заиграла новыми красками и я очень надеюсь, что в ближайших релизах Safari с ней что-нибудь сделают.
С этой проблемой пытались бороться решениями разной степени костыльности ещё во времена актуальности React Transition Group, но с приходом View Transitions эта проблема заиграла новыми красками и я очень надеюсь, что в ближайших релизах Safari с ней что-нибудь сделают.
October 12, 2024