Обновить

Фронтенд

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

pkg-cache — простой локальный кеш пакетов

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

Пример реализации простого кэширующего прокси для пакетов npm, composer и pip на базе node.js для Windows и Linux.

Читать далее

Новости

Попробовали подключить ИИ-агента к бизнесу и посмотреть на процесс через призму UX

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

Можно ли подключить AI-агента за минуту? Смоделировали путь клиента по самостоятельному подключению известного агента без помощи менеджера и специалиста, и вот что у нас получилось.

Читать далее

Point0 — простой, как tRPC, полноценный фулстек-фреймворк

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

Хочу сравнить фреймворк Point0 и библиотеку tRPC. Делаю это, потому что квери и мутации в Point0 очень похожи по DX на tRPC, но более удобны ввиду того, что всё же Point0 это фреймворк и он может обладать возможностями, которыми библиотека не может:

Объявлять квери вместе с серверным кодом прямо в клиентских файлах, или наоборот

Автоматически гидрировать и дегидрировать квери клиент при включении SSR

В мутациях отправлять файлы автоматически превращая данные в FormData и обратно

Иметь стабильные индивидуальные урлы для квери и мутаций

Не заставлять зависать редактор кода при увеличении количества эндпоинтов

Возвращать в ответах с сервера на клиент целые серверные компоненты или интерактивные острова

Управлять внешним видом состояний загрузки на страницах и в компонентах

Кроме того, что описано в этой статье, Point0 может много чего ещё, но об этом в других статьях. Сейчас фокусируемся на сравнении с tRPC. Предполагается, что вы с tRPC более менее знакомы, но ниже я всё равно буду показывать примеры реализации на tRPC, чтобы сравнения были видимыми.

Читать далее

Просто дайте мне ввести цифры

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

Цифровая идентификация и её значение для веба в последние годы стали темой горячих обсуждений. Они привнесли с собой множество спорных моментов: законы о проверке возраста и их влияние на онлайн-анонимность; Википедия потенциально будет вынуждена верифицировать в Великобритании личность пользователей; привязка к официальным операционным системам iOS и Android стала обязательным форм-фактором для кошельков цифровой идентификации; кроме того, стоит упомянуть ситуацию, когда американские цифровые аккаунты были закрыты потому, что их пользователь был судьёй Международного уголовного суда.

В своей истории я расскажу о швейцарской правительственной системе идентификации AGOV. Этот развёрнутый в 2024 году сервис сегодня насчитывает 1,6 миллиона аккаунтов и становится всё более необходимым: через него можно получать пособие по безработице, предоставлять налоговую декларацию (а это обязательное действие!) и выполнять множество других операций. В кантоне Цюрих это единственная возможность подачи заявления на гражданство.

В конечном итоге, я был вынужден создать аккаунт AGOV. К сожалению, его регистрация была довольно сложной задачей, пока я не нашёл причины странного бага accessibility. Вдохновившись статьёй «Просто дайте мне выделить текст», хочу представить вашему вниманию «Просто дайте мне ввести цифры».

Читать далее

Манифест программиста, использующего AI-кодинг-агента

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

Последнее время я все чаще вижу одну и ту же картину.

Появился тикет. Программист копирует ссылку, передает ее AI-кодинг-агенту и через какое-то время получает готовый Pull Request.

Вроде бы красота.

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

Только потом начинается самое интересное.

В Pull Request приезжает куча лишнего кода. Тесты зеленые, но сама функция не работает. Тикет уходит тестировщику и возвращается обратно. После исправления снова возвращается. А иногда оказывается, что агент вообще понял задачу не так, но программист этого даже не заметил, потому что сам тикет толком не прочитал.

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

Но инструмент, который быстро пишет код, не отменяет необходимость думать.

Читать далее

Вы не знаете CSS. Мои вопросы о CSS с ответами. Версия 2026 года

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

Хабр, привет!

В прошлом месяце я опубликовал статью с вопросами о HTML. Неожиданно для меня, она понравилась многим и стала одной из самых популярных за последнее время. Раз так получилось, то почему бы не сделать то же самое про CSS? Вот я и пришёл со своими вопросами и, конечно, ответами.

Моя цель — это развлечь вас. Хотя вопросы связаны с практикой, на них не так просто ответить. Если вы не сможете ответить на большинство, то ничего страшного. Но, возможно, они покажутся вам легкотнёй.

Давайте посмотрим, что я вам подготовил.

Читать далее

Веб-портфолио с управлением жестами через камеру: полевой дневник

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

Я продуктовый дизайнер. И мне захотелось поэкспериментировать: можно ли уже сейчас сделать полноценное управление сайтом с помощью жестов. Да и ИИшки уже стали достаточно мощными. Так родился этот эксперимент. Для контента взял свое портфолио.

Получилось вот что. Страница встречает полем из частиц. Разрешаешь камеру, и частицы собираются в твоё объёмное отражение. Разделы висят вокруг силуэта и открываются рукой: наводишь палец, пункт заполняется и раскрывается. Текст листается щипком, фотографии берутся в кулак и растягиваются двумя руками. Дизайн при этом намеренно тихий: монохром, костяная типографика на чёрном, единственный цвет живёт внутри 3D-формы. Вся выразительность отдана взаимодействию.

Дальше — грабли по порядку наступания.

Читать далее

Redux никогда не работал в React

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

потому что нельзя просто взять redux и начать использовать в React. Необходима некая «react-redux» библиотека. А в чём тогда смысл талдычить, что «Redux works with any UI layer»?

Читать далее

Тест модели квантовых корреляций (локальный реализм) Джоя Кристьяна. Начнём со школьной геометрии

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

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

Автор исходной модели — Джой Кристьян. Это реальный учёный, физик, который не принял стандартный вывод из теоремы Белла: что наблюдаемые корреляции нельзя объяснить локальной реалистической моделью.

Модель Джоя воспроизводит статистику квантовой запутанности. Но, как мы выясним, всё не так просто. В процессе, будет немного минималистичного научного дизайна. А начнём мы историю со школьной геометрии.

Читать далее

Виртуальные Scroll-контейнеры

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

Всем привет, на этот раз хочу провести обзор инструмента ng-virtual-scroll-view.

В предыдущей статье я делал обзор на универсальные виртуализированнные списки, которые "под капотом" использовали одноосевой виртуальный scroll-контейнер. Из проекта ng-virtual-list решил вырастить ещё один инструмент, двухосевой виртуальный scroll-контейнер ng-virtual-scroll-view. Инструмент также поддерживает версии Angular с 14 по 22.

С API и примерами использования можно ознакомиться в документации.

Читать далее

TypeScript 7 перенесли на Go. Проверяем, действительно ли он быстрее в десять раз

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

Есть одно предложение, которое за последние месяцы перепечатали, кажется, все. Вот оно, в переводе с блога TypeScript:

📣 Заявка. «Проверка типов проекта VS Code (около 1,5 млн строк) ускорилась с 77.8 с до 7.5 с». Итог, который команда вынесла в заголовок, — «примерно в 10 раз быстрее».

Это не обзор релиза. Это попытка воспроизвести один график — не на кодовой базе Microsoft, а на монорепо, которое я собрал специально под замер, двумя компиляторами на одной машине, с показом каждой цифры и с репозиторием, где любую из них можно получить командой pnpm bench.

Сразу спойлер: да, TS7 быстрее, и заметно. Но „в десять раз“ живёт в одном конкретном месте, испаряется в другом, а кое-что важное в 7.0 пока не вошло — и это „кое-что“ важнее скорости.

Главная мысль:

«10×» — это про чекер на большом проекте, а не про весь ваш день. TS7 радикально ускоряет проверку типов и режет память, и замеры это подтверждают. Но в 7.0 отсутствует стабильный программный API — а с ним из сборки выпадают кастомные трансформеры, tsserver-плагины и типизированный линтинг. Поэтому вопрос миграции — не «стало ли быстрее», а «завязана ли ваша сборка на этот API».

Читать далее

От сложности к простоте: как я переписал систему логирования Discord-серверов и сделал её в 10 раз проще

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

История о том, как сервис логирования Discord-серверов прошёл путь от сложной связки MySQL + PHP + Python до простого решения на Python + SQLite в одном Docker-контейнере — и почему упрощение стека того стоило.

Читать далее

TAMA-90: тамагочи из 90-х своими руками на JavaScript

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

До момента, когда я сел писать эту статью, я вообще не понимал, что такое тамагочи. Нет, не в смысле «никогда не слышал» — конечно, слышал и видел (не вживую, через экран). Где-то на уровне культурного шума это слово всплывало регулярно в американских фильмах или сериалах, где герой с придыханием вспоминает игрушку детства и рассказывает, как ему это нравилось. Ярче всего у меня в памяти отпечаталась сцена из знаменитого детективного сериала «Менталист»: Патрик Джейн с неизменной полуулыбкой вручает коллеге тамагочи, и тот, взрослый серьёзный мужик (не очень серьёзный на вид, но в момент моего просмотра все взрослые люди серьёзные), вдруг расплывается: «О боже, у меня в детстве такой был! Я их обожал! Как ты узнал!» и т. д.

Раньше я реагировал на такие моменты как на упоминание Game Boy или Dendy: «ну да, старая штука, скорее всего, что-то похожее на Game Boy, который мне был понятен на то время», и я думал: «кому-то дорога как воспоминание, но мне-то чего с того, игрушка есть игрушка». Но сейчас в какой-то момент мне стало понятно, что если об этой игрушке говорят до сих пор, если она пережила три десятилетия и кучу переосмыслений — значит, там внутри что-то большее, и надо посмотреть, что это и как работает.

Так я и сделал. И для начала — немного истории, потому что без неё нет смысла вспоминать и описывать старые вещи (всё, что больше 10 лет назад, уже старое, поэтому, надеюсь, без обид xd).

Читать далее

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

Детектор копипасты для TypeScript, Vue, Svelte и Angular

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

Копипаста редко выглядит как копипаста. После переименования переменных, строк и чисел два одинаковых блока спокойно проходят ревью как разный код. Я написал clone-alert, чтобы находить такие совпадения в TypeScript, JavaScript и шаблонах Vue, Svelte и Angular.

Читать далее

Локализация уже скомпилированных React компонентов в node_modules

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

🇧🇷 🇨🇳 🇮🇳 Локализуем React не трогая код компонентов

React-компоненты из node_modules уже скомпилированы, поэтому внедрить react-i18next в них обычно невозможно без форка библиотеки. В статье показываю, как перехватить все вызовы jsx/jsxs через кастомный react/jsx-runtime и автоматически локализовать текст даже внутри уже собранных компонентов, не меняя их исходный код.

Читать далее

GEO — эпоха продвижения в нейросетях уже наступила. Часть 1 из 3

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

Это первая из трёх статей про GEO. Здесь — концептуальная база: за что вообще идёт борьба в нейровыдаче и почему это не косметическая надстройка над SEO. Во второй части будет содержательный слой — смыслы, граундинг, факт-чекинг и почему накрутка не держится. В третьей — прикладная техника: чанкование, разметка, замеры и атрибуция. Каждую часть можно читать отдельно.

Читать далее

Конвертируем цвета в JS со скоростью 6 миллиардов операций в секунду

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

В начале этого года я создал самую быструю JS-библиотеку для работы с цветом: парсинг различных форматов, конвертация в OKLAB/OKLCH, проверка попадания в P3-гамут и многое другое. Библиотека весит всего 7 КБ и не имеет внешних зависимостей. Высокую скорость обеспечили оптимизации под V8: мономорфизм, скрытые классы, ноль лишних аллокаций.

Глянуть, что за либа

TypeScript 7.0 — самое радикальное обновление за 10 лет

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

С самого начала TypeScript обещал обеспечить масштабируемость JavaScript. Строгая типизация и богатый инструментарий позволили разрабатывать нетривиальные, высококачественные приложения под любые платформы.

В прошлом году наша команда анонсировала следующий шаг в масштабировании TypeScript: нативный порт на Go, который использует все возможности современного железа. Порт сделан максимально точно: новый код воспроизводит структуру и логику оригинальной кодовой базы, чтобы результаты двух компиляторов совпадали.

Ключевое отличие — TypeScript 7 использует скорость нативного кода, разделяемую память при многопоточности и ряд новых оптимизаций. В итоге полная сборка ускоряется в 8–12 раз.

Читать далее

Один комментарий на Хабре — и ещё один пакет для Django Admin

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

Недавно я опубликовал на Хабре статью о небольшом пакете django-scroll-to-top, который добавляет кнопку «Наверх» в проекты на Django. Сам пакет решает довольно локальную задачу, но обсуждение под статьёй оказалось интереснее, чем я ожидал.

В комментариях возник вполне закономерный вопрос: насколько вообще подобным интерфейсным дополнениям место в стандартной Django Admin? Ведь каждое установленное приложение добавляет свои пункты в боковое меню, и со временем административная панель действительно может начать выглядеть перегруженной.

Один из комментариев заставил меня посмотреть на эту проблему немного под другим углом. В результате вместо долгого спора появился ещё один небольшой open-source-пакет — теперь уже для сворачивания групп приложений в боковой панели Django Admin.

Читать далее

История JavaScript: браузерные войны, ECMAScript, Node.js, TypeScript, React

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

Десять дней разработки — и язык, на котором держится веб. В этой статье — история JavaScript и инструментов, которые привели его к этому.

Читать далее
1
23 ...