Обновить
256K+

JavaScript *

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

220,59
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Размытая граница между состояниями CSS и событиями JavaScript

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели9.5K

CSS «слушает» нас. Нет, не в буквальном смысле. Суть в том, что в CSS появляется все больше псевдоклассов, которые позволяют реагировать на события JS без необходимости писать сам JS. Формально псевдоклассы отслеживают состояния, а не события, но порой они настолько похожи на обработчики событий, что разница становится почти незаметной (хотя в контексте CSS это не так уж важно).

Читать далее

Kotlin? Swift? Flutter? Нет, кириллица: пишем production-приложение с картой и push-ами на 1С: Элемент

Время на прочтение23 мин
Охват и читатели11K

Привет, Хабр! (И тебе, 1С-ник, который открыл статью только чтобы убедиться, что пока точно не надо изучать новый продукт. И тебе, питонист, который сейчас будет морщиться. И тебе, мобильный разработчик, который уверен, что без Kotlin/Swift нормальное приложение не родится - держи кружку крепче.)

Эта статья будет посвящена технологии, на которой можно написать своё мобильное приложение за пару дней. И я вам на примере реализованного мною полноценного проекта логистического приложения покажу, что сейчас из себя представляет эта технология на нашей родной КИРИЛЛИЦЕ, и что на ней можно сделать прямо сейчас. И самое главное, как…

Читать далее

Вторая копия Vue: как лишняя строка в lockfile повесила Chromium

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели11K

Может ли лишняя запись в yarn.lock повесить браузер? Наша прожила в репозитории три месяца, не привлекая внимания, а потом ночью после релиза положила прод вечным лоадером - причём только в Chromium. Рассказываю, как мы шли к разгадке через ложные следы и что в итоге оказалось в рантайме.

Читать далее

ИИ Агент для скоринга торговых рекомендаций

Время на прочтение5 мин
Охват и читатели13K

👾 ИИ Агент для скоринга торговых рекомендаций

Как понять, кто реально умеет торговать, а кто просто удаляет убыточные посты? ИИ извлекает торговое намерение из свободного текста, а дальше детерминированный движок прогоняет их через бэктест и риск-менеджмент.

В итоге оценивается не красивая лента и не заявленный win rate, а статистически проверяемое качество решений автора.

Читать далее

Отдали базу штрихкодов статикой: 1,9 МБ, 1387 шардов, медиана в одну строку

Время на прочтение5 мин
Охват и читатели8.3K

Браузерный сканер штрихкодов упирается в развилку: чтобы показать, что за товар в руках, надо сходить в товарный API — и отдать туда номер, IP и время. По одному запросу это ничего, по потоку — фактический чек, собранный чужими руками.

Второй путь: скачать базу один раз, порезать на файлы по префиксу и раздавать статикой. Разбираем, что из этого вышло на 32 772 товарах: 1387 шардов, 1,85 МиБ сырых и 429 КиБ в brotli, худший файл 331 КиБ. И главное — сколько приватности при этом всё равно утекает: запрос к серверу есть, а медиана строк в шарде равна единице, то есть для 722 файлов из 1387 запрос за шардом равен запросу за товаром.

Внутри: фильтр на входе, почему не одним файлом, TSV против JSON с замерами, и что в схеме до сих пор не решено.

Читать далее

«Почему мы снова говорим про архитектуру?»

Уровень сложностиСложный
Время на прочтение13 мин
Охват и читатели7.5K

Разработчик интерфейсов уверен, что выбранный им фреймворк автоматически решает за него вопросы структуры и организации кода. Он искренне верит, что если взять React, Angular, Vue, да тысячи их, то получает в руки серебряную пулю, которая закроет все проблемы разработки. Достаточно следовать документации фреймворка, и с проектом все будет хорошо в долгосрочной перспективе. И я сам долгое время рассуждал точно так же, я воспринимал только Angular, потому что там есть хоть какой-то структурный подход. На практике это оказывается большим заблуждением.

Что делать и кто виноват?

Три разных номера из одной книги — и все проходят контрольную цифру

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели7.6K

У EAN-13 есть контрольная цифра, и из этого обычно делают вывод: раз проверка сошлась, номер прочитан верно. Вывод неверный. Я получил с одной книги три разных номера, и все три контрольную цифру проходят. Разбираю, почему так выходит, почему у QR такой беды нет и что с этим делать — с кодом, замерами и таблицей, откуда взялась каждая цифра.

Читать далее

Блокчейн глазами разработчика: append‑only база данных, за запись в которую платят

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели7.2K

Слово «блокчейн» испорчено маркетингом. За десять лет вокруг него наросло столько «революций», «иксов» и «цифрового золота», что нормальный разработчик при его звуке закрывает вкладку — и я его понимаю.

Проблема в том, что за хайпом прячется инженерно интересная конструкция. Если убрать из блокчейна всё маркетинговое и посмотреть на него глазами человека, который каждый день работает с Postgres, Kafka и git, останется знакомая до боли вещь: реплицированный append‑only лог, в котором состояние — это проекция, а запись — платная.

В этой статье я разберу блокчейн именно так: без «крипты», через аналогии с инструментами, которыми вы пользуетесь каждый день. А в конце мы подключимся к реальной сети из десяти строк TypeScript и пощупаем этот лог руками.

Читать далее

Обновления GigaIDE за июль 2026

Время на прочтение4 мин
Охват и читатели6.7K

Всем добрый день. Как и в предыдущие месяцы, по итогам июля мы решили рассказать про то, как изменилась GigaIDE за прошедший месяц. Ниже — краткий обзор обновлений Pro-функциональности GigaIDE, который можно найти на нашем маркетплейсе.

Читать далее

Я написал мессенджер в одиночку … Разбор 149-ФЗ

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели51K

Омаж на статью https://habr.com/ru/articles/1066668/ от @BorisXQ

Я тоже написал "мессенджер" на любимом $mol ( благодаря которому я могу добавить этот мессенджер в любое своё $mol приложение за 1 строчку кода ) и GiperBaza, без слежки, логина, пароля, и вообще без сбора каких либо данных

И даже почти без сервера)

P.S Только для домашнего использования

Можно создать диалог с тем, чей айди тебе известен, либо создать беседу и пригласить туда людей, либо создать реестр, что бы все кто хотел туда бы добавились. Например реестр всех айтишников)

Вступайте в очередной реестр всех айтишников!) https://b-on-g.github.io/gram/#!users=xa77SU2P_FSMnTiSP

Или написать мне напрямую https://b-on-g.github.io/gram/#!invite=J2kVT1UX_fmQm09dd

Читать далее

Как мигрировать 1 млн строк кода с одного языка на другой за 2 недели

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели11K

До недавнего времени миграции кода, при которых рабочую кодовую базу переносят на новый язык, занимали несколько лет.

За последний месяц отдельные разработчики Anthropic с помощью Claude Fable 5, Claude Opus 4.8 и dynamic workflows перенесли десять проектов объемом от десятков до сотен тысяч строк кода. В этой статье мы разберем два примера и лучшие практики, сформировавшиеся в ходе этих проектов.

Джарред Самнер, сооснователь Bun и технический специалист Anthropic, использовал Claude Code, чтобы перенести Bun с Zig на Rust. Менее чем за две недели было создано миллион строк кода. До слияния ветки 100% существующих тестов Bun проходили в CI. После слияния обнаружилось 19 регрессий, все они уже исправлены. В июне версия на Rust вошла в состав Claude Code.

Майк Кригер, один из руководителей Anthropic Labs, за выходные перенес кодовую базу на Python в 165 000 строк TypeScript. В процессе работали сотни агентов, использовались восемь контрольных этапов, три раунда состязательного ревью и финальная проверка, которая сравнивала вывод каждой команды с результатом оригинальной версии на Python.

Новые возможности Claude Code меняют экономику давно откладываемых проектов. Ниже описан процесс из шести шагов, который мы теперь используем, он основан на выводах из этих миграций.

Читать далее

React Update Lifecycle: что происходит при обновлении компонента

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели7.1K

В этой статье последовательно разобран полный цикл обновления React: от Virtual DOM до внутреннего устройства Fiber Reconciler.

Разобраться в жизненном цикле React

Объекты в JS не бесплатные

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели47K

Поговорим про микро-оптимизацию. Про, казалось бы, самую безобидную вещь: обычный {}.

[object Object] выглядит почти бесплатной абстракцией. Создал объект, напихал полей в любом порядке, удалил ненужное, передал дальше и забыл. Но, внезапно, одинаковые для тебя объекты могут оказаться разными для V8, порядок присваиваний влияет на машинный код, а “безобидный” delete оставляет после себя совсем не пустое место.

Для 99% систем это не имеет значения. А вот если у тебя hot path, через который проходят десятки тысяч объектов в секунду, или ты пишешь библиотечный код, стоит знать, что V8 на самом деле делает с твоими объектами.

И чего V8 там делает?

Ближайшие события

Offline‑first PWA на примере фитнес‑трекера

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели5.7K

Привет, меня зовут Сергей Цибульченко, я fullstack‑разработчик. На хабре уже есть несколько статей про PWA, но они не раскрывают всех подводных камней данной технологии, я с этим лично столкнулся когда делал пет‑проект по этим статьям.

Для начала, что такое PWA? Это веб‑страница которая выглядит и ведёт себя как приложение, но при этом имеет технические ограничения веб‑страницы.

Читать далее

Сложные сайты на вайбкоде: четыре лендинга, два пути к «дорогим» эффектам и 3D-логотип из спрайтов

Время на прочтение22 мин
Охват и читатели11K

TL;DR

За последний год я собрал вайбкодингом не один десяток лендингов — для программ МФТИ, для своих проектов и на заказ. Разберу четыре самых показательных: Школу Техпреда, конференцию «Точка сборки», курс «ИИ Продакт-менеджмент» (aimipt.ru) и один свой, личный — на нём эффекты раскачаны сильнее всего.

У всех четырёх есть слой «дорогих» визуальных эффектов: интерактивная вода на WebGL-шейдере с освещением, 3D-логотип Физтеха из тысяч частиц-спрайтов, живая 3D-башня из кубов, облако частиц, которое морфит форму по скроллу.

К этому слою я пришёл двумя разными путями. На «Точке сборки» эффекты написаны руками на чистом WebGL — ноль анимационных библиотек. На остальных работает свой движок на Three.js: вынесен отдельными файлами, переиспользуется между сайтами и откатывается на 2D-canvas, если CDN не ответит.

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

Читать далее

Фронтенд умер? Нет, но AI уже держит лопату

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели11K

Привет, на связи Рома Миронов из Авито. Я бывший — хотя бывших не бывает — фронтендер, а сейчас тим- и техлид. Ковыряю AI и больше ничем не занимаюсь — кроме команды, конечно :) В этой статье расскажу, почему фронтенд пока не умер, какие задачи уже можно отдавать агентам, где они красиво ошибаются и почему сначала от AI становится больнее, а не легче.

Читать далее

Картинка грузится, а fetch к тому же хосту — нет: как CSP тихо сломала три интеграции

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели8K

Полгода назад я закрыл замечание аудита «на сайте нет CSP» — прописал
Content‑Security‑Policy с белым списком хостов, проверил, что ничего не
отвалилось, и забыл. За три дня на прошлой неделе я нашёл три интеграции,
которые эта политика убила молча. Ни одна из них не оставила следа на сервере.

Страница, которая называет себя «в реальном времени», показывала одно и то же
число десять секунд подряд — и показывала так всем, с того самого дня, как я
включил CSP.

Это заметка про то, почему такие поломки не видно, и про скрипт, который
находит их все сразу.

Читать далее

Заметки фром реакт документейшен | React: грабли, о которые я спотыкалась. Часть 1

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели6.6K

React я использую совсем недавно и вообще я бэкенд разработчик, но жизнь завела меня во фронтенд. Получилось так, что времени на обучение и курсы у меня не было, пришлось обучаться прямо в процессе.

Мой принцип был "работает и ладно", но принципы нормального фронтенда явно отличались. Шишек я набила знатных с точки зрения чистоты и логики кода.

Это статья для таких же новичков, как я. Представляю вам сборник граблей, о которые я спотыкалась сама, и решений к этим граблям, которые родились после нескольких часов дебага и внимательного изучения документации (спустя пол года во фронтенде пора бы, да?)

Читать далее

AAA Движок для GTA San Andreas в браузере и переписывание ThreeJS

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели9.8K

Данная статья - это продолжение повествования о том, как я делаю AAA-движок для запуска старых игр, а именно GTA San Andreas и её модов, в браузере. В ней речь пойдет о том, как я уперся в производительность Three.js и перевел движок на свой фреймверк под WebGPU.

Читать далее

Мой опыт онбординга разраба с амнезией

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели12K

Давай признаем, ты чуть ли не 90% кода пишешь с помощью клода, кодекса или еще какого агента. Ты выпускаешь несколько мр-ов в день, пушишь несколько тысяч строк кода, и быстро просматриваешь псевдо код на ревью, чтобы доказать самому себе, что это действительно ты напряг мозг и сделал задачу. Ты делаешь ровно то, что и всегда, думая, что агент просто ускоряет цикл разработки, который ты проводил ежедневно.

Однако не покидает ощущение, что это какой-то цирк. Ты просто осознанно повторяешь действия, которые раньше имели смысл, но в глубине души фрустрируешь от странности происходящего.

Читать далее