Ранее публиковал теоретическую часть по рекурсивным импортам, желательно ознакомиться перед тем как продолжить, чтобы было общее преставление.Рекурсивные импорты рассмотрим на примере React/Redux приложении.Исходный код приложения опубликован тут, можете склонировать и попробовать самостоятельно исправить ошибки. Так сказать закрепить теорию на практике.Barrel файлы и рекурсивные импортыЧастая ошибка, связанная с рекурсивными импортами — это использование barrel файлов. Желательно их не использ…
Две проблемы React-разработчикаУ React-разработчика две беды:Целевые данные изменились, а ререндера не произошло.Целевые данные не изменились, а ререндер произошёл.Есть много способов подружить данные с UI. В рамках этой статьи я пройдусь по популярным подходам: разберём, как устроены подписки, почему происходят лишние ререндеры, и когда какой инструмент подходит лучше. Выбор библиотек основан только на личном опыте: описал то, с чем сталкивался лично. В целом, все библиотеки из списка крайне п…
Иллюстрация процесса (сгенерировано https://grok.com/) Всем привет.В этой части мы изучим базовую теорию и перейдем к практическому применению.Коротко о том, чем мы тут занимаемся К сожалению, на Хабре я не прошел песочницу с нулевой частью, поэтому вот ссылка на часть 0, где идет описание целей более подробно.Для лиги лени добавляю краткое описание.Цель проста как мир: получать деньги ничего не делая. Это все упрощение, но именно этого я добиваюсь. Для этого я использую свои знания в програм…
Команда JavaScript for Devs подготовила перевод статьи о том, как инструменты JavaScript переживают сдвиг в сторону системных языков. Rust, Go и Zig уже не эксперимент, а основа нового поколения бандлеров, линтеров и компиляторов. Выясняем, почему экосистема сознательно уходит от JavaScript в собственных инструментах, какие выгоды это даёт и какие компромиссы приносит.За последние пару лет мы стали свидетелями заметных изменений в экосистеме JavaScript: многие популярные инструменты для разрабо…
Привет, Хабр! Меня зовут Владислав, мне 13 лет, и я создал язык программирования VladX. В этой статье расскажу, как устроен его интерпретатор, почему я выбрал русский синтаксис и как можно попробовать язык в действии.Идея: почему русский синтаксис?Когда я начал изучать программирование, английские ключевые слова if, else, function казались магическими заклинаниями. Логика алгоритмов была понятна, но синтаксис создавал лишний барьер. Я подумал: а что если сделать язык, где ключевые слова будут н…
В компаниях с несколькими продуктами знания о коде и архитектуре почти неизбежно расползаются. Часть живёт в репозиториях, часть — в статьях с архитектурными решениями, часть — в корпоративной базе знаний (в нашем случае — Confluence). На небольшом масштабе это выглядит как порядок. Но по мере роста начинают проявляться системные эффекты.Появляется дублирование функционала с разными подходами. Сложнее становится погружаться в новый продукт при кросс‑командных переходах. Поиск по каждому репозит…
Привет, друзья!В этой небольшой статье мы вместе с вами немного пощупаем новый Web API - Anchor Positioning.Anchor Positioning API предоставляет новые возможности для связывания элементов между собой. Одни элементы являются якорями (якорными, anchor elements), другие - позиционируемыми относительно якорей (закрепленными, anchor-positioned elements). Размер и положение позиционируемого элемента может определяться размером и положением якорного элемента.Кроме того, с помощью CSS можно:определять …
Base64 — это схема кодирования двоичных значений в текст, преобразующая произвольные двоичные данные (например, изображения, файлы или любые байтовые последовательности) в безопасную печатную ASCII-строку, состоящую из 64-символьного алфавита (A–Z, a–z, 0–9, +, /). Браузеры применяют эту схему в JavaScript для встраивания двоичных данных непосредственно в код/HTML или для передачи двоичных данных в виде текста.Недавно в браузерах появились удобные и безопасные функции для обработки Base64: Uint…
В современных фронтенд-приложениях работа с файлами встречается постоянно: загрузка изображений, экспорт CSV, превью и интерактивные редакторы. Но когда файлы увеличиваются в размере или их количество растет, начинаются проблемы: интерфейс подвисает, расход памяти увеличивается, а браузер иногда просто падает.В этом руководстве мы разберем шесть практических приемов работы с Blob, которые помогают обрабатывать файлы эффективно и безопасно:правильное создание Blobразбивка больших файлов на части…