Обновить
512K+

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

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

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

# 10 ошибок API

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

40 000+ записей без пагинации, 200 OK вместо 400 Bad Request, SQL-запросы в ответах клиенту. Собрал 10 ошибок API из реальных проектов: монолитов, микросервисов, стартапах и энтерпрайза.

Читать далее

Как AI-копилоты изменили мой рабочий процесс во фронтенде — и где с треском провалились

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

AI-копилот за 40 секунд сгенерировал мне форму на 180 строк с валидацией через zod и сэкономил полчаса. А потом потратил два моих часа на отладку хука с race condition, который я бы написал сам за 40 минут. После месяца плотной работы с Cursor, Copilot и ChatGPT на продакшн-проекте React/Next.js я вывел для себя систему: какие задачи отдавать AI, а к каким его подпускать нельзя.

Читать далее

Безопасный file upload в Go: 7 атак на загрузку файлов и как мы их закрывали

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

«Сделай форму загрузки PDF» – звучит как задача на полчаса. Claude/GPT напишет handler, мы добавим accept=".pdf" на фронте, multer на бэке – и вот у нас работающий upload. Можно деплоить.

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

С распространением LLM-инструментов порог входа в разработку снизился радикально. Это прекрасно – больше людей могут создавать продукты. Но вместе с порогом входа снизился и порог входа для уязвимостей. Когда LLM генерирует код загрузки файла, она решает функциональную задачу: принять файл, сохранить, обработать. Безопасность? «Добавлю потом». А «потом» обычно наступает после инцидента.

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

Читать далее

Vue.js Amsterdam 2026: будущее экосистемы Vite

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

Недавно в Амстердаме прошла конференция Vue.js Amsterdam 2026 — ежегодное мероприятие, посвящённое экосистеме Vite и современным инструментам фронтенд-разработки.

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

В этой статье разберём основные анонсы конференции: Vite 8, Vite+, Void Cloud, а также обновления Vue и Nuxt.

Читать далее

JWT авторизация в FastAPI: от теории до работающего кода

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

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

В этой статье я разберу подход, основанный на JWT (JSON Web Tokens), и покажу, как реализовать полноценную авторизацию в FastAPI — одном из самых быстрых и современных фреймворков для Python. Мы пройдём путь от архитектуры приложения до готового кода, который можно использовать в реальных проектах.

Читать далее

10 веб-API, заменяющих многие библиотеки JavaScript

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

Современные браузеры тихо съедают экосистему JavaScript живьем.

За последние несколько лет основные браузеры выпустили нативные веб-API, которые заменяют удивительно большое количество утилит, которые мы до сих пор устанавливаем по привычке. Тем не менее, многие разработчики продолжают использовать уже ненужные, но привычные библиотеки. Если зависимость всегда работала, она остается в стеке, даже если браузер уже умеет выполнять ту же работу.

Такой подход обходится дороже, чем кажется. Каждый дополнительный пакет увеличивает вес сборки, затраты на обслуживание, частоту обновления версий и риск отказа от проекта в долгосрочной перспективе. Нативные API-интерфейсы стоят пользователям 0 КБ данных, работают глубоко в движке (часто вне основного потока (main thread)) и используют оптимизации, недоступные библиотекам.

Читать далее

FE-разработчики, перестаньте буквально воспринимать дизайн

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

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

Читать далее

Почему все хотят автоматические релизы и кому они на самом деле нужны

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

Привет! Я Александра Невзорова, QA в команде оформлений. Моя команда занимается процессингом оформления кандидатов во всю группу компаний. Поделюсь докладом моей коллеги — Марии Палагиной из команды разработки веб-платформ об автоматических релизах. 

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

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

Читать далее

Что не так с веб-компонентами?

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

Здравствуйте, меня зовут Дмитрий Карловский, и я пилил веб-компоненты, когда их ещё не придумали, делал полноценные компоненты на AngularJS, когда там ещё были только директивы, и разработал компоненто-ориентированный фреймворк $mol с инверсией контроля и статической типизацией, когда это ещё не было мейнстримом. Короче, я немного в теме. И сейчас я расскажу вам, почему мы сразу отказались от Web Components и почему у них нет никаких перспектив.

✔ Готов получить сарказм

ИИ‑помощник не понимает ваш UI Kit? Показываем, как это починить

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

Около 90% фронтенд‑разработчиков в нашей команде используют ИИ‑помощников для написания кода. Лично у меня — и как я могу заметить, у многих — был такой опыт: вы только начинаете пользоваться ИИ‑помощником, просите его сгенерировать какое‑нибудь классное MVP, получаете результат минут за пять и думаете: «Вау, неужели это возможно? Как это вообще работает и как это круто». 

А дальше вас ждёт сюрприз. 

Всем привет, меня зовут Валерий Баранов, я руковожу командой технологий фронтенда в Яндекс 360. Мы занимаемся тем, что сами называем «общим фронтендом»: общими техническими компонентами, общим CI/CD, платформами дистрибуции общих компонентов. Сегодня я хочу рассказать, как мы в Яндекс 360 сделали фронтенд‑проекты по‑настоящему AI‑ready: научили ассистентов понимать структуру наших репозиториев, работать с внутренними библиотеками и даже соблюдать паттерны дизайн‑системы. 

Читать далее

Иностранные слова в брендинге и интерфейсах IT- компании. Что изменилось с 1 марта 2026

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

С 1 марта 2026 года в России действует закон, по которому публичная информация для потребителей должна быть на русском языке. Пока закон обсуждался, большинство IT-компаний смотрели на него как на проблему скорее офлайн-бизнеса: вывески, баннеры, магазины. Но когда к нам стали приходить клиенты с конкретными вопросами, стало очевидно, что онлайн он задевает не меньше. Кнопки, разделы меню, тарифные планы - всё это могут посчитать публичной информацией для потребителя. Что именно создает риск претензий, разбираемся на практике.

Откуда взялся закон

ФЗ № 168-ФЗ от 24 июня 2025 года добавил в Закон о защите прав потребителей новую статью 10.1. Суть: любая нерекламная информация, предназначенная для публичного ознакомления потребителей, размещается на русском языке.

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

28 февраля 2026 года, за день до вступления в силу, Роспотребнадзор опубликовал разъяснение: требования распространяются в том числе на сайты в интернете как «общедоступные места». До этого часть юристов ссылалась на позицию ВС РФ 2015 года о том, что интернет не «место, открытое для свободного посещения».

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

Читать далее

Фронтендеры, хватит покрывать тестами каждую строчку кода – это безумие

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

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

Читать далее

Как перестать наступать на грабли в Go: набор рабочих рецептов

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

Пишете на Go или только начинаете изучать язык? Эта шпаргалка точно сэкономит вам кучу времени. Никакой воды, абстрактных рассуждений и скучных введений. Мы пройдёмся по тем самым ситуациям, с которыми бэкендеры сталкиваются на каждом проекте: конкурентность, сеть, работа с JSON, обработка ошибок, тесты и дебаг.

Можете смело добавлять это в закладки. Забыли синтаксис или паттерн, открыли нужный раздел, скопировали, адаптировали и поехали дальше.

Читать далее

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

Как я перенес консольное приложение в Rust + WASM и выложил на GitLab Pages

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

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

переписал логику на Rust,

собрал в WebAssembly и завернул в статичную страницу с терминальным интерфейсом на чистом HTML/CSS/JS.

В статье разбираю практический пайплайн: экспорт функции из Rust в WASM (wasm_bindgen), инициализацию модуля в браузере через JS, вывод результата в DOM и публикацию через GitLab Pages. Отдельно показываю, как встроил .wasm в base64, чтобы страница работала даже без отдельной загрузки бинарного файла.

Это кейс про то, как быстро превратить небольшую CLI-логику без системных API в наглядное web-демо, которое открывается с любого устройства без установки.

Репозиторий: gitlab.com/Evgene-Kopylov/iching_wasm
Демо: i-ching-wasm-c50914.gitlab.io

Читать статью с картинками

Debug‑web: консольный отладчик для прода

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

Компактный пакет debug-web решает вечную проблему тестировщиков и разработчиков: «А стенд актуален?». Добавьте в проект несколько строк кода — и в консоли всегда будут версия сборки, время деплоя и любые другие данные. Уровень логирования меняется прямо из консоли, без пересборки. Рассказываю, как мы экономим часы на поиске информации и отладке.

Читать далее

Заменить нельзя оставить: как DataLens мигрировал с Highcharts

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

Привет, меня зовут Евгений Алаев, я разработчик интерфейсов в команде Yandex DataLens. Это облачный BI‑инструмент для анализа данных и построения дашбордов, и графики в нём — не «одна из фич», а сердце продукта. Пользователь открывает дашборд и первое, что видит, — визуализации. Именно они отвечают на вопрос: «Что происходит с моими данными?»

DataLens работает в двух инсталляциях — для самого Яндекса и для внешних пользователей. Суммарно на сегодня создано больше 18,3 млн графиков. Каждый из этих графиков — результат работы той самой библиотеки визуализации, о которой пойдёт речь.

Долгое время графики в DataLens строились на Highcharts. Поначалу это был разумный выбор: быстрый старт, богатый набор типов, большое сообщество. Но BI‑инструмент со временем становится сложнее — появляются нестандартные требования к поведению, дизайн‑система, которую нужно выдерживать в едином стиле. И в какой‑то момент Highcharts начал мешать больше, чем помогать.

В этой статье расскажу, как и почему мы приняли решение написать собственную опенсорс‑библиотеку для визуализации — @gravity‑ui/charts. Мы с коллегой — core‑контрибьютеры этой библиотеки, так что я в подробностях расскажу, что нас не устраивало в Highcharts, какие альтернативы рассматривали, как устроена архитектура и с какими конкретными техническими вызовами столкнулись в процессе.

Читать далее

Разбираем net/http на практике. Часть 2.3: Динамические маршруты, cookie-аутентификация и управление доступом

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

В этой статье цикла мы решим главную проблему сервиса DeadDrop: пользователь создаёт секрет, но не может его забрать.

Здесь мы:

1) Научим net/http понимать динамические маршруты без фреймворков
2) Научимся подписывать куки через HMAC и узнаем, как оно работает изнутри
3) Настроим безопасное скачивание файлов

Никаких готовых решений - лишь стандартная библиотека, которая никуда не пропадёт и не развалится за месяц!

Сегодня сервис DeadDrop станет полноценным веб-приложением - покрываем все функции, заявленные в первой статье

Читать далее

Как я сделал Roomify — AI-визуализатор интерьеров на React и Puter

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

Привет, Хабр! Меня зовут Андрей, и я фулл-стек-разработчик. Недавно я выпустил свой pet-проект Roomify — веб-приложение, которое превращает обычный план помещения в фотореалистичный 3D-рендер за несколько секунд. В этой статье я хочу рассказать, как всё устроено под капотом: от выбора технологий до интеграции с AI и облачной платформой Puter.

Читать далее

Чистые функции в html шаблонах Angular

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

Начиная с версии 21.2 Ангуляр внедрил поддержку чистых JS функций в html шаблонах. Теперь можно инлайнить функции без необходимости определения их в классе компонента. Фича, на мой взгляд, довольно противоречивая, поэтому давайте разбираться.

Читать далее

О цифровой доступности: как постигать интернет без визуальных интерфейсов

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

Всем привет! Меня зовут Артем Плаксин, я с рождения практически ничего не вижу.

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

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

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

Читать далее