JavaScript. Работа с большими файлами в браузере. Часть 2/2: Создание 5Gb файлов в браузере

Онлайн доска DGRM.net кеширует файлы в постоянном кеше. Постоянный кеш не удаляется при закрытии вкладки. Рассказываю как хранить большие файлы в браузере.

Прототипно-ориентированный язык программирования

Онлайн доска DGRM.net кеширует файлы в постоянном кеше. Постоянный кеш не удаляется при закрытии вкладки. Рассказываю как хранить большие файлы в браузере.

Статья о том, как получить наблюдаемость (observability) в приложении с минимальным кодом, а бонусом получить структурированные логи с типизированными шаблонами, автоматическую корреляцию со спанами OpenTelemetry, всё это с помощью набора библиотек, которые я называю CleverBrush Framework.

Если вы пишете на Angular, то наверняка часто используете хуки жизненного цикла вроде ngOnChanges, ngOnInit и ngOnDestroy. С появлением сигналов и концепции Zoneless (когда Zone.js уже не обязателен) у нас появились более элегантные и читаемые альтернативы.
Давайте разберем, как современный подход позволяет упростить код и избавиться от "шумных" методов жизненного цикла.
Всем привет. Я занимаюсь фронтендом в небольшой команде сервиса бронирования отелей. Хочу как я 8 дней ловил утечку памяти на проде, несколько раз думал, что починил, и каждый раз ошибался. А последний фикс был не в нашем коде, а в патче самого Vue, который через неделю апстрим откатил как регрессионный. У нас в результате осталась одна патч-версия, в которой утечки нет; обычный minor/patch update сейчас для нас не безопасен без повторной проверки heap-снапшотами.
Наш стек Nuxt 3.18 + Vue 3.5.x + TypeScript, SSR, Pinia, PM2 cluster, nginx перед Node. Обычный каталог отелей с тысячами SEO-страниц вида /oteli-v-{город}/{подборка}

Я занимаюсь разработкой ПО для строительной механики. В процессе работы над одним из проектов возникла потребность в простом инструменте для построения линий влияния в многопролётных шарнирных балках. Готового решения под рукой не оказалось, и я написал свой веб-модуль.
Результатом захотелось поделиться с сообществом — вдруг кому-то тоже пригодится. Под катом — описание того, что получилось, как это работает, и где может быть полезно.

За 6 недель Claude Code преобразовал 200K строк JS в strict TypeScript. Не переименование файлов, а настоящая типизация: интерфейсы, строгие null-чеки, перехваченные баги в проде. Тут разбор реального кейса с цифрами, ошибками агента и главным вопросом: стоит ли вам это повторять?

Написал утилиту для создания аккордов в любой мыслимой тональности.
Собственно в статье описываю путь от идеи до реализации этой утилиты и показываю, как ей пользоваться.
Также - просто раскрыл базовые понятия муз.гармонии, необходимые для понимания, чем же утилита полезна и в каких сценариях в жизни её может применить пользователь.

История о том, как один странный git push оказался началом расследования, которое вывело меня не на один взломанный аккаунт, а на цепочку зараженных репозиториев и проектов.
Снаружи все выглядело почти нормально: знакомый автор, знакомый коммит, привычные файлы. Но внутри последнего коммита уже жил чужой обфусцированный JavaScript. Он прятался в конфиге, менял Git-историю и маскировался под обычную работу разработчика.
Первой версией был взлом моего GitHub, но смена ключей и паролей ничего не решила.
Потом след вывел на другого разработчика, потом еще на несколько проектов, и картина стала намного неприятнее.
Это оказалась PolinRider-like supply chain атака, которая использует сам developer workflow как транспорт.
В статье я разбираю, какие мелкие странности помогли заметить проблему и почему им нельзя махать рукой.
Показываю реальные скриншоты, подозрительные изменения в .gitignore и payload внутри babel.config.js.
В конце оставил скрипты, которые могут помочь быстро проверить свои проекты и логи на PolinRider похожие признаки.

Мир frontend-разработки за последние несколько лет изменился коренным образом. Если еще пять лет назад стандартом де-факто были одностраничные приложения (SPA), где вся логика выполнялась в браузере, а сервер был просто REST API, то сегодня мы наблюдаем массовый переход к гибридным архитектурам. Next.js с его Server Components и Server Actions стал не просто популярным фреймворком, а промышленным стандартом для enterprise-приложений.
Этот переход принес с собой множество преимуществ: улучшенную производительность, лучший SEO, упрощенную разработку. Однако он же изменил и модель угроз, с которыми сталкиваются разработчики. Привычные методы защиты, основанные на JWT в заголовках и CORS-политиках, больше не обеспечивают полную безопасность. Серверная логика теперь исполняется в непосредственной близости от клиента, а граница между фронтендом и бэкендом стала размытой (для некоторых сценариев).
По данным исследований Snyk и других security-вендоров, 39% облачных средств содержали уязвимые версии React и Next.js в 2024-2025 годах. Это не просто статистика. Это реальные приложения, обрабатывающие данные пользователей, платежную информацию и конфиденциальные бизнес-данные. Уязвимость CVE-2025-55182, получившая максимальный рейтинг CVSS 10.0, показала, насколько критичными могут быть последствия недостаточного внимания к безопасности в современных frontend-приложениях.
React Server Components (RSC) стали новым стандартом, но вместе с ними пришли новые векторы атак. Server Actions, предоставляющие удобный способ вызова серверной логики прямо из компонентов, фактически являются публичными HTTP-эндпоинтами. При неправильной конфигурации они могут стать лазейкой для злоумышленников. Традиционный подход security through obscurity здесь не работает: скрытие эндпоинтов не защитит от целенаправленного перебора.

Началось всё банально. Зашёл коллега, говорит: «Где у нас хлебные крошки в шапке лежат?». Проект — около 150 компонентов, всё именуется по-своему, структура папок местами загадочная. Я начал тыкать в React DevTools, искать по тексту «Breadcrumb» в файлах… В общем, минут через пять нашёл. Это в очередной раз раздражало.

Как я хотел две странички для SAMBA и NFS, а сделал полноценную панель управления NAS на 20+ страницах

DOOM известен тем, что запускается где угодно – благодаря портам, которые появляются с 1993 года. Мем «It Runs Doom» («Он запускает DOOM») живёт в интернете уже больше десяти лет. Люди запускали DOOM на тостерах, на тачбарах макбуков, на умных холодильниках. И, кажется, я – первый человек, который уместил DOOM в QR-код.

В этой уже 5 по счету статье мы поговорим про актуальность локального AI в мобильных приложениях а также займемся интеграцией плагина для локальных LLM в Capacitor приложение.

Привет. Недавно пришлось повозиться с @tanstack/vue-table. Задача была стандартная: нужна таблица с сортировкой, фильтрами и редактированием ячеек. Казалось бы - идеальное время подключить готовое решение. Но не всё так гладко. Делюсь мыслями, граблями и тем, как я в итоге выкрутился.

Полностью браузерный терминал для работы с последовательными портами (COM-портами). Приложение не требует установки, работает прямо в Chrome или Edge, и при этом поддерживает все необходимые фичи для отладки микроконтроллеров, общения с сетевым железом или просто мониторинга UART-трафика.
https://github.com/GidroByte/web-serial-terminal-ru
Весь код одним файлом. Не требует компиляции и сборки, леко править обычным блокнотом — открыл и работаешь.

Привет!
Это 16 выпуск Frontend Status — дайджеста по фронтенд-разработке.
В этом выпуске:
📺 Если Next.js кажется слишком «магическим»: интервью с создателем TanStack — про client-first, type inference и честный выбор стека без маркетингового тумана.
🤖 Когда ИИ уже в проде, а контроля нет: от джунов без Copilot до паттерна «архитектор + разработчик», ревью агентских PR, «В поисках Мемо» (одна таблица в ClickHouse вместо Qdrant и Chroma) и on-premise на 4× RTX 4090 с водянкой — чтобы внедрять AI дисциплинированно.
🛡️ Один пропуск в npm — и секреты в CI утекают: атака на 84 пакета @tanstack, чеклист безопасности React (XSS, HttpOnly, CSP, Zod) и инициатива Mozilla WAICT — чтобы не узнавать об инциденте из новостей.
🎨 CSS и анимации без лишнего JS: safe-area-inset на реальных устройствах, забытые HTML/CSS-фичи, scrollytelling на scroll-state queries и портфолио на GSAP + шейдерах — чтобы интерфейс выглядел дороже, а код оставался прозрачным.
⚡ JavaScript и Node.js 26 без сюрпризов при миграции: orval из OpenAPI, когда цепочки .filter().map() вредят читаемости, Temporal и ломающие изменения в релизе от 5 мая — чтобы меньше гадать и быстрее обновлять рантайм.
⚛️ React-стек 2026 без ставки вслепую: патчи Next.js, local-first как data architecture, карта 60+ библиотек, Ant Design 6.4 и whisper.rn on-device — чтобы выбрать инструменты осознанно, а не по инерции.
🅰️ Angular и инфраструктура вокруг него: Taiga UI MCP для агентов.
📦 GitHub в России, интерактивная карта HistoryPrint на 13 000 событий, критика FSD, Safari TP 243, дизайн-система в DESIGN.md без дизайнера и сводка апдейтов Deno, Vite, Next.js, Vue и Tailwind — …и многое другое.

Как перестать копировать формы и построить масштабируемую архитектуру
В enterprise-приложениях формы множатся быстро: create, edit, import, create-from-lead, duplicate — и вот у вас уже шесть копий одной формы, а внутри условный ад из if (mode === …).
Почему mode prop и giant form component не масштабируются, как разделить форму на четыре слоя: presentation, orchestration, context, data source. Что такое capabilities и почему они лучше условной логики. Как адаптеры отвязывают форму от source entities. Куда прятать submit, валидацию и внешний store. Как тестировать такую архитектуру изолированно.

Да, я победил спам! Не «в основном», а «полностью и окончательно». Без всяких «почти». По крайней мере, на 99.9% победил. Причем этот 0.1% — не спам, прорвавшийся через фильтры, а false positives, которые не «вытащил» обратно в Inbox.
Программы и методы этой статьи могут быть адаптированны к любому из трех типов почтовых сервисов:

В большинстве компаний линтинг со временем превращается в хаос: разные правила ESLint, устаревшие конфиги и копипаста между проектами.
Покажу, как навести порядок – собрать линт-инфраструктуру в один пакет и выстроить систему контроля кода для всех репозиториев.
Если описать NestJS-архитектуру как граф — вершины это модули и классы, рёбра — зависимости между ними, — утверждение «архитектура не деградирует» перестаёт быть оценочным. Формально доказывается, при каких условиях циклы между модулями топологически невозможны, при каких размер публичного API не растёт с каждой новой ручкой, и при каких стоимость добавления фичи остаётся константой, а не растёт с числом существующих потребителей. Три измеримых структурных свойства, а не ощущение. Для типовой feature-based-структуры, которую сегодня продвигают как стандарт, ни одно из них не выполняется.
Серия из пяти частей: пошаговый разбор траектории на сквозном Twitter-подобном бэкенде, расчёт ROI типичной деградации в долларах и человеко-часах ($30–60k в год для команды из двух мидлов, $6–15M в год для big tech — с полным расчётом в части 3), и формальное доказательство на языке теории графов, при каких структурных условиях деградация невозможна.
Часть 5 — финал серии. Архитектурный подход, при котором эти три свойства соблюдаются (Feature-Based Clean Architecture), нагружается тем же сценарием годового роста, под весом которого деградирует обычный feature-based: партнёрка, анти-фрод, рефералки, расширенная аналитика, утроение модуля пользователей. Без художественности: реальный код, граф зависимостей «до» и «после», и формальное доказательство трёх свойств — DAG-инвариант, граница связности, O(1)-стоимость инкремента — на языке теории графов. Точка, в которой «архитектура не деградирует» становится не похвалой, а конкретным структурным утверждением.