Обновить
379.29

Веб-разработка *

Делаем веб лучше

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

Как начать работать с Nuxt UI — библиотекой компонентов для Vue и Nuxt

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

Недавно UI-библиотека Nuxt UI получила серьёзное обновление — версию Nuxt UI 4. Это принесло два больших изменения. Во-первых, теперь можно использовать Nuxt UI не только с Nuxt, но и с Vue напрямую. Во-вторых, все ранее платные возможности (Pro-компоненты, стартовые шаблоны и Figma UI Kit) теперь полностью бесплатны.

Всё это хороший повод разобраться, как же устроена Nuxt UI, в чём её преимущества и как начать с ней работать.

Читать далее

Новости

Последний романтик

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

Привет народ!

Вот и настала моя очередь исповедоваться перед тобой.

У меня есть, не самая оригинальная, гипотеза о том, что большинство из множества статей жанра "Исповедь Разработчика" - это попытка авторов добавить веса своему персональному бренду, в специфических условиях, сложившихся на рынке труда, когда люди с опытом и, казалось бы, правильным майндсетом, вынуждены стоять в одной очереди с теми, кто вкатился в АйТи только ради денег и удаленки.

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

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

Что там у тебя...

Я хотел бы знать это раньше. Очереди в Symfony

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

Привет! Меня зовут Никита Титков, я бэкенд-разработчик в Банки.ру. 

Создать простую очередь – несложная задача. Но как только очередей становится десятки и через них идут важные для бизнеса процессы, сразу появляются вопросы: как их правильно называть, чтобы не запутаться? Как организовать логирование и мониторинг, чтобы видеть, что происходит с сообщениями? Как обрабатывать ошибки? Мы сталкивались со всеми этими проблемами и решили поделиться опытом.

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

Давайте разбираться!

Читать далее

Укрощаем зоопарк API: универсальный Python-клиент для GigaChat, YandexGPT и локальных моделей (v0.5.0)

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

Привет, Хабр! 👋

Если вы пробовали внедрять российские LLM в свои проекты, то наверняка сталкивались с "зоопарком" API. У GigaChat — OAuth2 и свои эндпоинты, у YandexGPT — IAM-токены и gRPC/REST, у локальных моделей через Ollama — третий формат.

В какой-то момент мне надоело писать бесконечные if provider == 'gigachat': ... elif provider == 'yandex': ..., и я решил создать универсальный слой абстракции.

Так появился Multi-LLM Orchestrator — open-source библиотека, которая позволяет работать с разными LLM через единый интерфейс, поддерживает умный роутинг и автоматический fallback (переключение на другую модель при ошибке).

Сегодня расскажу, как я её проектировал, с какими сложностями столкнулся при интеграции GigaChat и YandexGPT, и как за пару дней довел проект до релиза v0.2.0 на PyPI с 88% покрытия тестами.

Читать далее

45 дней вместо 90: новые правила Let's Encrypt

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

Сначала новость кратко: Let's Encrypt собирается постепенно сократить срок жизни сертификатов с 90 до 45 дней. Это решение знаменует собой очередной этап в эволюции стандартов безопасности веба, в которой, да, изначально всё началось с гораздо более длительных сроков действия сертификатов. Еще в 2015 году сертификаты могли действовать до 5 лет, но по мере роста угроз и появления новых уязвимостей в криптографических алгоритмах индустрия постепенно переходит к более коротким срокам.

С 13 мая 2026 года появится (пока как опция) возможность получения 45-дневных сертификатов. Далее, 10 февраля 2027 года максимальный срок сократится до 64 дней, а к 16 февраля 2028 года — до финальных 45 дней.

Ух ты ж!

Вы до сих пор не пользуетесь Obsidian? Очень зря

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

Мой путь от простых телефонных заметок к системе персонального знания начался с боли: потеря данных при смене устройств, неудобная синхронизация, отсутствие контроля. Прорыв случился с Obsidian — приложением, которое, как и VS Code, строится вокруг открытого формата (Markdown), локального хранения и расширяемости через плагины. Именно этот принцип «я управляю инструментом, а не наоборот» стал ключевым: Obsidian — не блокнот, а операционная система для мышления.

Читать далее

Барьеры, которые рухнули: как искусство училось быть доступным для всех — истории, факты, кейсы

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

Классические театры часто строились во времена, когда об инклюзивности не задумывались. Однако сегодня даже легендарные сцены адаптируют пространство под нужды всех зрителей. Яркий пример – Большой театр в Москве. При грандиозной реконструкции, завершенной в 2011 году, архитекторы и строители заложили специальные решения для зрителей с инвалидностью. В театре появились:

Читать далее

От хаоса к структуре: как FEOD помогает упорядочить архитектуру фронтенд-приложений

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

Сегодня мы поговорим о том, как развивается платформенная команда «Спортмастера». Речь пойдёт о подходе к организации фронтенд-приложений, который получил название FEOD — Fractal Entity Oriental Design.

Читать далее

Грани полиморфизма React: полиморфные декораторы

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

Привет, снова Костя из Cloud.ru. Мы поговорили уже про as для типобезопасного полиморфизма, asChild для композиции и FACC для вариативного дизайна. Но что, если я скажу, что есть способ комбинировать логику ещё элегантнее и не смешивать ее с отрисовкой? Сегодня разбираем полиморфные декораторы - HOC'и на стероидах.

Интересно

Управляем «протягиванием» прокрутки: разбор overscroll‑behavior

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

Распространённый сценарий: вы прокручиваете модальное окно, доезжаете до конца и… вместо того чтобы остановиться, браузер продолжает тянуть основной документ. Это так называемый «scroll chaining»: событие прокрутки передаётся родительскому контейнеру. На мобильных устройствах этот эффект сопровождается bounce‑анимацией или pull‑to‑refresh. Для некоторых интерфейсов такое поведение отвлекает пользователя и может мешать вашему коду.

В этой статье я расскажу, как CSS‑свойство overscroll-behavior помогает контролировать такие эффекты, избавится от хака overflow: hidden, а также рассмотрим практические примеры и подводные камни.

Узнать, что там скоро починят браузеры

Как защитить переводы по номеру телефона от подмены: реальные угрозы, атаки и то, что действительно работает

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

В комментариях к предыдущей статье многие писали:

«Я не буду доверять какому-то боту» «Любой сторонний сервис — риск» «Номер можно подменить»

Это нормальная и абсолютно здравая позиция.

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

Читать далее

Идеально размещённые тултипы: по углам

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

Мы продолжаем делать тултипы, которые “следуют” за своим якорем, и на этот раз поработаем с новыми позициями и изучим новые приёмы. Я буду исходить из того, что вы прочитали и поняли первые две части, поэтому не стану заново объяснять уже разобранные вещи. Сразу предупрежу: если вы их пропустили, местами можно ощутимо запутаться.

Читать далее

Первая в мире библиотека Web Components в духе shadcn. Серьёзно, я проверял

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

Первая в мире библиотека Web Components в духе shadcn/ui

Насколько я проверил — это первая подобная библиотека для Web Components. Если ошибаюсь — поправьте в комментах! 🤓

Let's get it

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

Baseline: ноябрь 2025

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

Baseline: ноябрь 2025

Обзор на браузерные API, которые стали Widely available в ноябре 2025. Раз в месяц я буду вам напоминать, что вы уже можете использовать в проде.

Каждый месяц выходят новые CSS-свойства, HTML-атрибуты, JavaScript-методы и WebAPI, но применять в проде мы их конечно же не будем.

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

Узнать, что можно применять в проде

RUM на Prometheus: пишем за вечер свой простой и надёжный фронтенд-мониторинг

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

Вы смотрите в Lighthouse на 95 баллов, а пользователи пишут, что сайт тормозит. Знакомо? Пользователи сидят на старых смартфонах, слабом интернете, через прокси — поэтому лабораторные метрики не отражают реальную картину. По исследованиям даже +0,1 секунды загрузки сайта влияет на конверсию!

Сегодня я покажу, как своими руками сделать облегченный Real User Monitoring на Prometheus начиная со сбора метрик и заканчивая настройкой графиков — без Kafka, без ClickHouse, без хранения сырых событий.

Читать далее

Ответ фронтендера на «Не занимайтесь преждевременной оптимизацией»

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

Я хочу показать, почему распространённая фраза "не занимайтесь преждевременной оптимизацией" почти всегда используется неправильно, особенно в современных фронтенд-проектах. Я посмотрю на исторический контекст, разберу, что именно Кнут называл оптимизацией, и почему многие вещи, которые считаются "преждевременной оптимизацией", на деле — нормальная инженерная дисциплина.

Читать далее

Музыкальный блокнот. Приложение разбора игры на гитаре по видео (вайб кодинг 1 день)

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

Несколько раз в жизни мне случайно попадалась в руки гитара, и я начинал учить песни Стинга. Shape of my heart, Fragile — любимые с детства. Их я легко нашел на ютубе, подробные разборы, понятные для чайников — где какую страну зажимать и в каком порядке дергать.

А вот с Desert Rose возникли трудности — я не смог найти по ней внятный урок. Только примитивный набор аккордов типа Am, Dm, C. Но я нашел исполнение одной девушки, которое понравилось, и решил разобрать его. Сначала я просто смотрел на видео и повторял. Но дальше нескольких аккордов не получилось выучить — объем информации слишком большой. Я пытался в тетрадке делать записи, но тоже не осилил. Смотрел несколько приложений для составления табулатур и счел их крайне неудобными. Я пытался отказаться от записей и «вербализации», а двигаться на чувствах и интуиции — и тоже не смог

В итоге я сделал скриншоты всех перестановок руки (их получилось 75). И в редакторе изображений отметил перебор. Получилось такое:

Читать далее

Цепочка ошибок в JavaScript: удобная отладка кода с помощью Error.cause

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

Обработка ошибок в JavaScript всегда была немного хаотичной. Получить ошибку легко, но отследить ее первоисточник бывает очень сложно. Именно здесь и приходит на помощь свойство cause.

Читать далее

90% программистов совершают эти ошибки. Как писать на Angular грамотно

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

Давайте начистоту. Большинство Angular-приложений пишутся по инерции. Мы используем паттерны, которые выучили на заре второй версии, и продолжаем тащить их за собой, игнорируя всё, что фреймворк предложил за последние годы. 

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

В этой статье мы не будем говорить о базовых синтаксических ошибках или разбирать, где вы точку с запятой забыли. Речь пойдёт о более глубоком уровне, об архитектурных просчётах и антипаттернах, которые тиражируются из проекта в проект. Многие из этих привычек были допустимы в прошлом, но с приходом новых версий, вроде Angular 20, от них пора избавляться.

Читать далее

Что такое CRUD и почему это важно для всех в IT

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

Неважно, в какой сфере вы работаете: backend-разработчик, frontend, архитектор БД, системный аналитик, тестировщик или кто-то еще. А может, вы только ищете работу в IT? Или просто интересуетесь, как устроен цифровой мир. Эта статья - возможность освежить в памяти базовые концепции программирования, подготовиться к собеседованию (ведь вопрос про CRUD-операции может прозвучать не напрямую, но почти всегда скрыт в других задачах или кейсах) или просто понять, как устроены ваши любимые приложения.

Вопрос на миллион: Знаете ли вы, что общего между созданием поста в Нельзяграм, покупкой на Ozon и обновлением резюме на hh.ru?

Ответ прост: в их основе лежат четыре базовые операции, скрытые за аббревиатурой CRUD. И да, эти операции — первая ступень к пониманию того, как работают современные API.

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

Вклад авторов