Найти в Дзене
Присваиваете объект через = — и получаете вторую ссылку на тот же объект
Меняете «копию» — меняется оригинал. spread и Object.assign() спасают только частично: копируют первый уровень, а вложенные объекты и массивы остаются общими. Долгое время глубокую копию собирали через JSON.parse(JSON.stringify(obj)). Способ рабочий, но теряет данные: Date превращается в строку, функции и undefined исчезают, Map становится пустым объектом. structuredClone() делает полную...
1 час назад
В последней строке заголовка остаётся одно слово, и весь блок смотрится неаккуратно
Раньше это правили руками — неразрывные пробелы, мягкие переносы. Теперь браузер берёт работу на себя. text-wrap: balance выравнивает строки заголовка по длине — для блоков до шести строк. text-wrap: pretty убирает «висячее» слово в конце параграфа и работает на тексте любой длины. Оба значения — прогрессивное улучшение...
19 часов назад
Пояснение
👇 :has() — реляционный псевдокласс. Он принимает относительный селектор: тот, что начинается с комбинатора >, +, ~ или пробела (комбинатор потомка по умолчанию). Поэтому :has() смотрит вперёд по дереву — на потомков и следующих соседей. Селектор form:has(input:invalid) подсветит саму форму, если у неё среди потомков есть невалидный <input>. А form input:invalid сработает иначе: выберет сам <input>, а форма останется без выделения...
1 день назад
Иногда HTTP-сервер нужен на пять минут — отдать клиенту статический билд на проверку или открыть вёрстку с мобильного по локальной сети
Поднимать ради этого Vite или Nginx — избыточно: первый рассчитан на полный цикл разработки, второй требует своего конфига. http-server запускается через npx http-server и работает сразу — раздаёт текущую папку на порту 8080. Другой порт, CORS-заголовки, автооткрытие браузера, отключение кеша на время разработки — всё это флаги. Никакого конфигурационного файла или установки в проект ему не нужно...
2 дня назад
Всю неделю мы разбирали по частям одно и то же
Всю неделю мы разбирали по частям одно и то же. Войти джуном стало сложнее, потому что работу с нейросетями ждут почти везде. Вайбкодинг выручает на типовых задачах и упирается в потолок на нестандартных. А без базы, по которой видно собственные ошибки, ИИ копит их быстрее, чем вы успеваете замечать. Сходится всё в одном: нейросеть усиливает того, кто понимает код, и подводит того, кто на неё только надеется...
3 дня назад
Исследование: Kruger & Dunning, 1999
Исследование: Kruger & Dunning, 1999. «Unskilled and Unaware of It» — Journal of Personality and Social Psychology. В 1999 году Джастин Крюгер и Дэвид Даннинг описали закономерность: чтобы трезво оценить свою компетентность, нужна та же компетентность, которой как раз не хватает. Поэтому свои пробелы хуже всего видит тот, у кого их больше. С нейросетью этот разрыв проявляется особенно ярко. Вы пишете промпт, получаете рабочий компонент, чувствуете прогресс. А потом — баг, который модель не чинит с третьей попытки, и выясняется, что объяснить, почему код не работает, нечем...
3 дня назад
Кекс снова на даче — он там практически весь май
Сажает редиску. Перед посадкой успел нагенерировать нейросетью пачку карточек про фронтенд и сказал, что это важно для понимания профессии. Спорить с котом, у которого лопата, мы не стали. Выглядят убедительно. Местами — полная дичь, но нейросеть умеет звучать уверенно. Собственно, про это у нас вся неделя и была: модель выдаёт правдоподобное, а где правда — видит тот, кто разобрался в профессии...
5 дней назад
Frontend Mix × HTML Academy
Сегодня вечером наш Лёша садится за круглый стол — поговорить про ИИ во фронтенде. Зовём смотреть вместе. Начало в 21:15 по Москве. Тема — как изменились требования к фронтендеру в 2026 году. Вопрос ребром: за что разработчику платят теперь, когда написание кода стало дешёвым, и куда сместилась ценность? И заодно — что массовое использование ИИ за год-два делает с кодовой базой и экспертизой команды...
5 дней назад
Войти в разработку джуном стало ощутимо сложнее, чем пару лет назад
Команды всё чаще ждут, что разработчик уверенно работает с нейросетями. Для многих это уже базовое требование. Мы это часто слышали от работодателей в наших эфирах. Но есть нюанс. Нейросети регулярно выдают правдоподобный код с ошибками, и чтобы их поймать, нужно понимать, что происходит под капотом: почему компонент ререндерится лишний раз и за что на самом деле отвечает замыкание. Без этой базы ИИ ускоряет накопление ошибок, которые всплывут на ревью...
5 дней назад
Пояснение
⬇️ git reset --soft HEAD~1 сдвигает указатель текущей ветки на один коммит назад, индекс и рабочую директорию не трогает. Все изменения из снятого коммита остаются в индексе и готовы к новому git commit. Этот сценарий безопасен только до пуша — на общей ветке --soft потребует force-push и расстроит коллег. Флаг --hard тоже сдвинет указатель, но заодно приведёт индекс и рабочую директорию в состояние целевого коммита, и текущие изменения будут потеряны...
5 дней назад
Какая команда подойдёт?
Опрос
5 дней назад
На ревью большого PR обсуждение тонет в комментариях про форматирование: переносы строк, висячие запятые, порядок импортов, который у
каждого настроен по-своему. До архитектуры и логики дело может не дойти вообще. Prettier забирает форматирование себе. Один раз настраиваете .prettierrc — он переписывает код по единым правилам при каждом запуске. npx prettier --write . приводит весь проект в порядок одной командой. В VS Code включается формат при сохранении, и вопрос снимается на уровне редактора...
6 дней назад