“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-агент хорошо пишет код локально, но теряет систему целиком — поэтому мы создал…
ВведениеОколо двух лет я использую Obsidian как основное приложение для ведения заметок, планирования и написания статей. В этой статье я хочу поделиться своим полным workflow: от распределения заметок по папкам и горячих клавиш до детального Cheatsheet по хранилищу и организации метода Zettelkasten.Сразу уточню: Obsidian становится действительно удобным только тогда, когда человек сам собирает под себя хранилище и находить подходящий ему метод. Ниже я разбираю реализацию по частям, чтобы кажды…
Каждые пять лет я слышу одно и то же: фронтенд больше не нужен, ему остался последний год. Сначала говорили про визуальные конструкторы - Wix, Tilda, все дела. Потом, когда ИИ выстрелил, начали хоронить разработчиков под флагом «AI напишет тебе кнопку за секунду». А сейчас новая мода - фулстекеры. Приходят такие ребята и говорят: «Да зачем нам отдельный фронт, я сам и бэк, и фронт на коленке соберу, проект сэкономит, все будут счастливы».Давай просто выдохнем и разберемся, что на самом деле про…
Компонент, который делает всё, невозможно управляемо изменятьКомбайн не пишут — его выращивают. По одному разумному шагу за спринт. На планировании оценивают задачу: «добавить бейдж VIP на карточку клиента». Разработчик открывает CustomerCard.tsx, молчит и говорит: «Дня три». Никто не смеётся — все открывали этот файл. В нём почти семьсот строк, и он умеет всё: грузит клиента и его заказы, кэширует, валидирует форму, различает три роли, экспортирует CSV и не падает. Сцена собирательная, но файл…
Привет, Хабр! Меня зовут Андрей Бирюков. Я — независимый эксперт в области ИТ и ИБ, преподаю в учебных центрах и пишу статьи и книги.При разработке часто бывает так, что мы вроде бы всё делаем, как говорится, «по учебнику», а результат как‑то не очень. Например, мы разбили приложение на ленивые модули, каждый маршрут грузится отдельно, настроили production‑сборку. После этого открываем Chrome DevTools на вкладке Network и видим: main.js — 1.8 МБ. Явно не то, что мы ожидали. И это только начало.…
Вайб-кодинг уронил порог входа в разработку до плинтуса. Lovable, Bolt, v0 и им подобные позволяют за вечер собрать лендинг для своей мастерской, студии или небольшого бизнеса без единой строчки кода, написанной руками. Lovable вообще был первой нейронкой, с которой я познакомился для создания фронта: удобная штука для быстрой сборки концепта, когда в голове уже есть картинка будущего сайта.Но дальше начинается типичная история. Сайт есть, тексты есть, задеплоено на хостинг в пару кликов. А кон…
Привет, Хабр! «JavaScript однопоточный, но асинхронный» — фраза, которую слышал каждый и которая при этом ровным счётом ничего не объясняет. Как один поток умудряется одновременно ждать ответ сервера, отсчитывать таймер и обрабатывать клики? Почему setTimeout(fn, 0) срабатывает не сразу? Почему промис обгоняет таймер с нулевой задержкой, хотя оба вроде бы асинхронные? Почему тяжёлый цикл вешает всю страницу, а сетевой запрос — нет?Хорошая новость: всё это закрывается одной моделью, и она куда п…
Вот именно такой вопрос был задан в первом же комментарии к статье "DI-контейнер на чистом JavaScript без TypeScript и reflect-metadata" уважаемого @alexander_kubarski. Я когда-то и сам на Хабре отвечал на этот вопрос ("Зачем нужно внедрение зависимостей в JS"), и уважаемый @Wroud тоже ("Dependency Injection в JavaScript: зачем он вам нужен"), но непонимание места и значения DI у JS-разработчиков всё равно присутствует. Попробую ответить на этот вопрос ещё раз:Внедрение …
С 14 марта по 19 июля я писал в паре с Claude Code одно приложение: 517 коммитов, 228 из них релизные, 61 891 строка JS/CSS/HTML, 508 headless-тестов.Сразу оговорюсь, потому что это объясняет половину дальнейшего текста: на работе я имею дело с базами данных и SQL. Фронтенд — не моя область. У меня нет насмотренности, которая позволяет опытному верстальщику глянуть на экран и сказать «тут поехал z-index». Всё, что описано ниже, — попытка заменить эту насмотренность формальными проверками.Статья…