Обзор на браузерные API, которые стали Widely available в декабре 2025. Раз в месяц я буду вам напоминать, что вы уже можете использовать в проде. Каждый месяц выходят новые CSS-свойства, HTML-атрибуты, JavaScript-методы и WebAPI, но применять в проде мы их конечно же не будем. 2.5 года назад также каждый месяц выходили новые фичи в браузере, а вот их уже пора начинать применять.Как мы понимаем, что уже можно использовать в проде?У каждой компании, да что уж там компании, у каждой команды в ком…
Привет, Хаброжители!Недавно мне захотелось научиться преобразовывать текст в 3D-меши для последующего рендеринга, так, чтобы такими объектами можно было манипулировать в рамках моего проекта Geotoy и на языке Geoscript. Я занялся исследованием инструментов и библиотек, которые могли бы решать разные аспекты этой задачи, и потом собрал конвейер, реализующий всё вместе. Получились красивые 2-многообразные 3D-меши, поддерживающие произвольные шрифты, текстовые стили и многое другое.В этом посте мы…
Время выставляет нас всех дураками, и JavaScript в этом не исключение. Честно говоря, меня это особо не задевало: по большей мере меня радуют маленькие странности JavaScript.Мне нравится, когда можно увидеть обратную сторону; какой бы формальной и железобетонной ни казалась спецификация ES-262, мы всё равно замечаем (если знать, куда смотреть) в ней все хорошие и плохие решения, принятые сотнями людей, разрабатывавших язык. У JavaScript есть характер. Да, он не всегда делает всё в точности так,…
Иммутабельные паттерны разработки UI-приложений в последние годы стали одними из самых популярных благодаря сочетанию простой архитектуры и хорошей производительности. Они строятся на функциональном программировании без классов, используя стандартные структуры данных (без лишней магии и Proxy), быстрое (ссылочное / поверхностное) сравнение и мемоизацию на всех уровнях. В общем, принципы практически те же, на которых строится и сам React. Минусом же данных паттернов является ухудшение производит…
В современном мире данным кроме накапливания ещё присуще такое свойство как двигаться. Причём они движутся постоянно. Пользователи переходят между страницами и приложениями, товары перемещаются по глобальным логистическим сетям, а деньги циркулируют между счетами, банками и платёжными системами.В таких условиях традиционные инструменты аналитики — таблицы, статические графики и отчёты, хорошо отвечают на вопросы сколько? и ему подобные, но плохо показывают как именно это происходит. Чтобы понят…
Подход по компонентам — не новое понятие. Например, в экосистеме Vue vue-i18n поддерживает [i18n SFC (Single File Component)](https://vue-i18n.intlify.dev/guide/advanced/sfc.html). Nuxt также предлагает [переводы на уровне компонента](https://i18n.nuxtjs.org/docs/guide/per-component-translations), а Angular использует похожий паттерн через свои [Feature Modules](https://v17.angular.io/guide/feature-modules).Даже в Flutter-приложении часто встречается следующий паттерн:lib/ └── features/ └── log…
Ранее публиковал теоретическую часть по рекурсивным импортам, желательно ознакомиться перед тем как продолжить, чтобы было общее преставление.Рекурсивные импорты рассмотрим на примере React/Redux приложении.Исходный код приложения опубликован тут, можете склонировать и попробовать самостоятельно исправить ошибки. Так сказать закрепить теорию на практике.Barrel файлы и рекурсивные импортыЧастая ошибка, связанная с рекурсивными импортами — это использование barrel файлов. Желательно их не использ…
Две проблемы React-разработчикаУ React-разработчика две беды:Целевые данные изменились, а ререндера не произошло.Целевые данные не изменились, а ререндер произошёл.Есть много способов подружить данные с UI. В рамках этой статьи я пройдусь по популярным подходам: разберём, как устроены подписки, почему происходят лишние ререндеры, и когда какой инструмент подходит лучше. Выбор библиотек основан только на личном опыте: описал то, с чем сталкивался лично. В целом, все библиотеки из списка крайне п…
Иллюстрация процесса (сгенерировано https://grok.com/) Всем привет.В этой части мы изучим базовую теорию и перейдем к практическому применению.Коротко о том, чем мы тут занимаемся К сожалению, на Хабре я не прошел песочницу с нулевой частью, поэтому вот ссылка на часть 0, где идет описание целей более подробно.Для лиги лени добавляю краткое описание.Цель проста как мир: получать деньги ничего не делая. Это все упрощение, но именно этого я добиваюсь. Для этого я использую свои знания в програм…