Category : javascript

javascript
Ваш AI-агент не понимает код. Он просто очень уверенно угадывает — поэтому мы создали SLICER

“AI agents write units of changes that look good in isolation. They are consistent with themselves and your prompt. But respect for the whole…”«AI-агенты создают отдельные изменения, которые хорошо выглядят сами по себе. Они согласованы внутри себя и соответствуют вашему запросу. Но целостность всей системы при этом остаётся без внимания».— Mo Bitar, создатель Standard Notes, после двух лет активной разработки с AIAI-агент хорошо пишет код локально, но теряет систему целиком — поэтому мы создал…

  • понедельник, 27 июля 2026 г. в 00:00:19
javascript
2 года в Obsidian: мой workflow, архитектура заметок, плагины и синхронизация

ВведениеОколо двух лет я использую Obsidian как основное приложение для ведения заметок, планирования и написания статей. В этой статье я хочу поделиться своим полным workflow: от распределения заметок по папкам и горячих клавиш до детального Cheatsheet по хранилищу и организации метода Zettelkasten.Сразу уточню: Obsidian становится действительно удобным только тогда, когда человек сам собирает под себя хранилище и находить подходящий ему метод. Ниже я разбираю реализацию по частям, чтобы кажды…

  • понедельник, 27 июля 2026 г. в 00:00:17
javascript
Фронтенд никогда не умрёт

Каждые пять лет я слышу одно и то же: фронтенд больше не нужен, ему остался последний год. Сначала говорили про визуальные конструкторы - Wix, Tilda, все дела. Потом, когда ИИ выстрелил, начали хоронить разработчиков под флагом «AI напишет тебе кнопку за секунду». А сейчас новая мода - фулстекеры. Приходят такие ребята и говорят: «Да зачем нам отдельный фронт, я сам и бэк, и фронт на коленке соберу, проект сэкономит, все будут счастливы».Давай просто выдохнем и разберемся, что на самом деле про…

  • понедельник, 27 июля 2026 г. в 00:00:12
javascript
пошКОДим: как превратить React-компонент в неуправляемый комбайн — 15 вредных советов

Компонент, который делает всё, невозможно управляемо изменятьКомбайн не пишут — его выращивают. По одному разумному шагу за спринт. На планировании оценивают задачу: «добавить бейдж VIP на карточку клиента». Разработчик открывает CustomerCard.tsx, молчит и говорит: «Дня три». Никто не смеётся — все открывали этот файл. В нём почти семьсот строк, и он умеет всё: грузит клиента и его заказы, кэширует, валидирует форму, различает три роли, экспортирует CSV и не падает. Сцена собирательная, но файл…

  • воскресенье, 26 июля 2026 г. в 00:00:07
javascript
Ленивая загрузка — не лекарство: почему ваш main.js всё равно весит 2 МБ

Привет, Хабр! Меня зовут Андрей Бирюков. Я — независимый эксперт в области ИТ и ИБ, преподаю в учебных центрах и пишу статьи и книги.При разработке часто бывает так, что мы вроде бы всё делаем, как говорится, «по учебнику», а результат как‑то не очень. Например, мы разбили приложение на ленивые модули, каждый маршрут грузится отдельно, настроили production‑сборку. После этого открываем Chrome DevTools на вкладке Network и видим: main.js — 1.8 МБ. Явно не то, что мы ожидали. И это только начало.…

  • суббота, 25 июля 2026 г. в 00:00:06
javascript
Почему сайт невидим для роботов: проблемы вайб-кодинга

Вайб-кодинг уронил порог входа в разработку до плинтуса. Lovable, Bolt, v0 и им подобные позволяют за вечер собрать лендинг для своей мастерской, студии или небольшого бизнеса без единой строчки кода, написанной руками. Lovable вообще был первой нейронкой, с которой я познакомился для создания фронта: удобная штука для быстрой сборки концепта, когда в голове уже есть картинка будущего сайта.Но дальше начинается типичная история. Сайт есть, тексты есть, задеплоено на хостинг в пару кликов. А кон…

  • суббота, 25 июля 2026 г. в 00:00:05
javascript
Один поток, а всё успевает: как работает цикл событий в JavaScript

Привет, Хабр! «JavaScript однопоточный, но асинхронный» — фраза, которую слышал каждый и которая при этом ровным счётом ничего не объясняет. Как один поток умудряется одновременно ждать ответ сервера, отсчитывать таймер и обрабатывать клики? Почему setTimeout(fn, 0) срабатывает не сразу? Почему промис обгоняет таймер с нулевой задержкой, хотя оба вроде бы асинхронные? Почему тяжёлый цикл вешает всю страницу, а сетевой запрос — нет?Хорошая новость: всё это закрывается одной моделью, и она куда п…

  • суббота, 25 июля 2026 г. в 00:00:04
javascript
«Зачем Javasript-у DI контейнер?»

Вот именно такой вопрос был задан в первом же комментарии к статье "DI-контейнер на чистом JavaScript без TypeScript и reflect-metadata" уважаемого @alexander_kubarski. Я когда-то и сам на Хабре отвечал на этот вопрос ("Зачем нужно внедрение зависимостей в JS"), и уважаемый @Wroud тоже ("Dependency Injection в JavaScript: зачем он вам нужен"), но непонимание места и значения DI у JS-разработчиков всё равно присутствует. Попробую ответить на этот вопрос ещё раз:Внедрение …

  • четверг, 23 июля 2026 г. в 00:00:09
javascript
Четыре месяца с Claude Code: что в итоге осталось лежать в .claude/

С 14 марта по 19 июля я писал в паре с Claude Code одно приложение: 517 коммитов, 228 из них релизные, 61 891 строка JS/CSS/HTML, 508 headless-тестов.Сразу оговорюсь, потому что это объясняет половину дальнейшего текста: на работе я имею дело с базами данных и SQL. Фронтенд — не моя область. У меня нет насмотренности, которая позволяет опытному верстальщику глянуть на экран и сказать «тут поехал z-index». Всё, что описано ниже, — попытка заменить эту насмотренность формальными проверками.Статья…

  • четверг, 23 июля 2026 г. в 00:00:07