Обновить
358.61

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

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

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

Разработка с учетом паттернов WAI ARIA

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

Сегодня веб-приложения стали сложными интерактивными системами, напоминающими полноценные десктоп приложения. Однако за красивыми интерфейсами и богатым функционалом часто скрывается важный аспект, которому уделяется недостаточно внимания — доступность (accessibility). Для миллионов пользователей с ограниченными возможностями это означает, что они не могут полноценно взаимодействовать с сайтом, выполнить базовые действия или получить информацию.

Проблема особенно ярко выражена в современных одностраничных приложениях (SPA), кастомных компонентах, модальных окнах и прочих динамических UI-решениях, которые не учитывают, как с ними будут работать вспомогательные технологии. Например:

Читать далее

WHIP — стандартный протокол общения WebRTC приложений

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

Всем привет! Давно я ничего не писал на Хабр про WebRTC. Наверное как‑то не было повода, да и WebRTC давно понятен и прост в общих чертах. Пара строк кода с одной стороны, пара строк кода с другой — вот и готово. Наверное. Там дальше есть несколько тонкостей. На самом деле — целое море тонкостей и обстоятельств, которые надо понимать и уметь с ними работать, но такая уж наша инженерная доля — криво неидеально читать и писать стандарты.

Но сегодня я хочу рассказать не столько про WebRTC как таковой, сколько про велосипеды в его использовании в продакшн‑среде и о том, как тихо без помпы растёт новый стандарт для его сигналинга. На написание этой серии статей меня натолкнула активность Sean Dubois, создателя и мейнтейнера Pion — отличной WebRTC‑библиотеки для Golang.

Читать далее

Ваш сайт теряет пользователей прямо сейчас. Виноват один символ: '+' в email

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

Привет, Хабр! Представьте ситуацию: вы нашли крутой сервис, регистрируетесь, вводите свой email my.name+coolservice@gmail.com (ведь вы, как и я, любите порядок во входящих) и… получаете ошибку «Некорректный email». Знакомо? Уверен, что да.

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

Читать далее

Зачем я написал очередной велосипед для работы с директориями (спойлер: не совсем велосипед)

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

Вы когда-нибудь сталкивались с плагинами, которые лезут в чужие папки, перезаписывают файлы ядра и превращают git status в ад?

Я — да. И вместо того чтобы мириться с ручным копированием, гигантскими .gitignore и вечными конфликтами, написал dmp — инструмент, который:
 Отслеживает, откуда взялся каждый файл,
 Автоматически разрешает конфликты (или даёт контроль),
 Не ломает IDE (никаких симлинков!),
 Работает с любыми языками и фреймворками.

Для кого:
— Разработчики плагинов/модулей,
— Те, кто устал от git-submodules и rsync,
— Все, кто хочет чистый workflow без монрепозитория.

Читать далее

Game-changer-инструменты для разработчиков которые стоит попробовать. [Часть 1/2]

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

Разработка программного обеспечения и DevOps-инфраструктура в сложно представить без мощных open-source-инструментов. Некоторые из них не просто полезны — они меняют подход к автоматизации, деплою, ИИ-интеграции и безопасности. В этой статье собраны действительно сильные и перспективные проекты с открытым кодом: они бесплатны, активно развиваются и способны радикально упростить жизнь разработчика.

Читать далее

Как Хоук упрощает отладку JavaScript с помощью трекера консоли

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

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

Читать далее

Погружение в Go: подборка ресурсов для новичков и продолжающих

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

Привет, Хабр! Пару лет назад мы уже выпускали подборку книг, подкастов и других ресурсов для изучения языка программирования Go. За это время коллекция полезных материалов подросла, и пришло время поделиться продолжением.

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

Читать далее

Сам себе антифрод: как мы отсекли 48% трафика в Директе кастомным комбайном на Matomo

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


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

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

Читать далее

Очень вероятно, что эти HTML- и CSS-ошибки есть в вашем коде

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

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

Недавно у меня появилась мысль поделиться распространёнными HTML- и CSS-ошибками, которые я вижу у коллег. Только мне хотелось выглядеть убедительно, чтобы не было вкусовщины. И тут я сильно задумался.

На HTML и CSS очень сложно сделать критическую ошибку. Чтобы интерфейс не заработал. Но всё же я собрал список. Я постарался выделить только критические ошибки. Конечно, это субъективный список, поэтому не знаю, согласитесь ли вы с ним.

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

Читать далее

Паттерн Спецификация: реальный опыт применения

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

Четыре года назад на собеседовании я услышал от интервьюера о том, как замечательно паттерн Спецификация помогает справиться с проблемой разрастания репозитория. Я думаю, многие с этим сталкивались, когда количество методов типа getByThisAndThat(…) улетает за десяток, а то и за несколько десятков, и репозиторием становится пользоваться неудобно.

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

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

Читать далее

Vercel приобрела NuxtLab. Всё хорошо, но немного тревожно

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

Три недели назад произошло событие, которое в фронтенд-сообществе многие восприняли с двойственными чувствами. Vercel, та самая компания, которую обычно ассоциируют с Next.js и хостингом для модных React-приложений, объявила о покупке NuxtLab - команды, стоящей за Nuxt и Nitro.

Читать далее

Альтернатива чатам с ИИ для анализа и оптимизации SQL запросов

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

Всем привет!

Экспериментировал с оптимизацией SQL запросов в ChatGPT и Claude. В какой-то момент понял, что это превращается в одно и то же: Напиши промт → вставь SQL → подожди → поправь → повтори

Читать далее

Мне лень

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

Привет Хабр!

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

Большая ли мысль?

Читать далее

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

Будущее JavaScript: что нас ждет

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

Недавно прошла 108-я встреча TC39, на которой было продвинуто 9 предложений на разные стадии стандартизации — от сырых идей (Стадия 0) до полностью утвержденных возможностей (Стадия 4).

Ниже краткий обзор этих предложений и того, что они могут привнести в JavaScript.

Читать далее

API-First & Frontend

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

Мы все чаще сталкиваемся с парадоксом: с одной стороны, растут требования к скорости вывода продукта на рынок, с другой — увеличивается сложность приложений. При этом, разработчики тратят большое количество времени на рутинные задачи, такие как интеграция с API и написание boilerplate-кода. Именно здесь на помощь приходит автоматизация рутинных задач во фронтенде на основе OpenAPI-спецификаций и она может очень сильно упростить нам, фронтендерам, жизнь!

Читать далее

Фича ради фичи: как потерять продукт, продолжая его улучшать

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

- А давайте добавим ещё фильтр…
- Хорошо бы выгрузку в Excel
- Вот бы ещё график и пуши — красиво же будет!

Проект набирает скорость. Только вот в каком направлении?

Читать далее

CSS Anchor Positioning API

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

Большой обзор нового API для позиционирования элементов в CSS.

В статье вы узнаете как теперь без использования библиотек можно создавать tooltip'ы, контекстные меню, индикаторы и другие элементы UI, которым необходима якорная связка.

Читать далее

CSS-медиазапросы без min- и max-. Как работает новый синтаксис и стоит ли переходить?

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

Разбираем новые возможности CSS Media Queries Level 4 — логические операторы сравнения, которые делают код более читаемым и интуитивным.

От (min-width: 768px) and (max-width: 1024px) к простому (768px <= width <= 1024px). Зачем это нужно и как с этим работать?

Читать далее

Долгий путь к ResizeObserver

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

Привет, Хабр! Меня зовут Анна, я JS-разработчик в компании SimbirSoft и занимаюсь разработкой веб-приложений на React. Эту статью я посвящаю тем, кто занимается разработкой, сталкивается с нестандартными задачами и переживает, что нашу профессию может вскоре заменить искусственный интеллект (ИИ). Я поделюсь решением задачи, связанной с динамическими размерами блока, — проблемой, с которой наверняка может столкнуться в своей работе любой frontend-разработчик.

Почему же я назвала статью именно «Долгий путь к ResizeObserver»?

Возможно, я и слышала раньше про этот API, но когда передо мной встала конкретная задача (описанная ниже), я о нем даже не вспомнила. Мне пришлось пробовать сначала одно решение, потом другое — и лишь в третью очередь я пришла к нужному инструменту. Таков мой путь — из трех шагов. Я человек, поэтому могу честно рассказать, как именно искала решения, в отличие от ИИ. Надеюсь, моя статья поможет вам быстро и эффективно справиться с похожей задачей, а заодно придаст уверенности в собственных силах. Я убеждена: ответы на вопросы находятся не только в нашей голове, но и в окружающем мире, а человек, в отличие от ИИ, способен чувствовать, искать и находить их самым неожиданным для себя образом.

Читать далее

Техническое задание на разработку сайта

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

Привет, с вами Вячеслав Егоров, основатель и CEO MediaTen. Сотрудничая с крупными клиентами, я понял, что у них есть запросы на полный комплекс услуг от одного подрядчика. И помимо разработки, в него входят аудиты и написание подробной технической информации, в том числе техзаданий.

И если аудиты нацелены на выявление проблем цифровых платформ, то правильное ТЗ помогает сделать так, чтобы их вообще не было. Но, увы, часто бизнес не сразу осознает важность одного из главных этапов проекта.

Читать далее

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