Обновить
1024K+

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

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

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

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

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

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

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

Читать далее

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

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

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

переписал логику на 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.4K

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

Здесь мы:

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

Модульная система Sass: руководство по @use

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

Раньше в Sass был только @import, который создавал кучу проблем: глобальное загрязнение, конфликты имён, дублирование кода. В новых версиях (Dart Sass) @import объявлен устаревшим — вместо него пришли @use и @forward. Переход на модульную систему — это не просто замена одного слова на другое, а смена парадигмы. Теперь каждый файл — изолированный модуль со своим пространством имён.

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

как подключать переменные, миксины и функции через @use;

почему больше не работает @import 'file' и как исправить старый код;

что такое встроенные модули (mathlistmapstringcolor) и зачем их подключать вручную;

как гибко настраивать темы через !default и with();

чем @forward отличается от @use и как с его помощью собирать публичное API проекта;

как избежать ошибок с повторными импортами и конфигурацией.

Материал будет полезен всем, кто пишет на Sass и хочет идти в ногу с развитием инструмента.

Читать далее

Как экспортировать плейлист из Яндекс Музыки за 10 секунд

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

Иногда хочется выгрузить список треков из плейлиста Яндекс Музыки — например чтобы:

сохранить треклист

перенести музыку в другой сервис

сделать бэкап

проанализировать плейлист

Ещё одна причина — изменения в версиях треков. В некоторых случаях в каталоге Яндекс Музыки используются отредактированные версии песен (например, с запиканной ненормативной лексикой или изменёнными фрагментами текста). Поэтому иногда хочется сохранить оригинальный список треков из плейлиста, чтобы при необходимости найти альтернативные или оригинальные версии композиций в других сервисах.

Но у Яндекс Музыки нет функции экспорта.

Читать далее

Fame to Flame: как мы за два месяца собрали VK Mini App на 80 000 пользователей и собственный видеостриминг

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

К нам в Doubletapp обратились организаторы Fame to Flame — федерального танцевального чемпионата. Онлайн-часть ивента планировалась как ядро всей механики конкурса — регистрация участников, загрузка видео, голосование, работа с чеками. При декомпозиции задач мы поняли, что сложность здесь на стыке: видеостриминг, антифрод, всплески нагрузки и жёсткий дедлайн в два месяца. Но у нас было мощное оружие — опыт.

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

Содержание:

Что хотел заказчик
Видео: главный источник сложности
GPU-транскодинг под пользовательскую загрузку
Асинхронный пайплайн обработки
Подготовка к пиковым нагрузкам
Наблюдаемость и раннее обнаружение деградации
Модерация VK как часть production-цикла
Фронтенд и кастомный видеоплеер
Результаты

Читать далее

Автостопом по хостингу: переезжаем с cPanel и Plesk на ispmanager

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

Привет, Хабр! С 31 марта 2026 года cPanel и Plesk перестанут работать для российских пользователей. WebPros International LLC, американская компания, которая дистрибутирует обе панели, официально уведомила российских партнеров: обслуживание клиентов из России и Белоруссии полностью отключается.

Мы в Рег.ру запустили программу экстренной помощи. Вместе с заместителем руководителя направления службы поддержки хостинга Рег.ру Никитой Никоновым и специалистами по переносу сайтов Аленой Галкиной и Вадимом Курносовым разбираем, как перенести сайт с cPanel или Plesk на альтернативный вариант — отечественную панель ispmanager: от бэкапа до переключения DNS.

Читать далее

Аутентификация и авторизация пользователей — неочевидная боль в разработке

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

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

Читать далее

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

Метрика на ключевое событие в MVP без тяжёлой аналитики

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

При запуске MVP считаем вначале не клики вообще, а деньги и время. Деньги потому, что до серьёзных вложений полезно быстро и по возможности бесплатно проверить, нужен ли проект рынку. Время потому, что его легко потратить не на сам MVP, а на подключение Яндекс.Метрики, Google Analytics, событий, воронок, отдельной базы и прочей обвязки. В итоге идея ещё не проверена, а вокруг неё уже начинает расти аналитическая система.

Рассмотрим простую схему с 1-2 быстрыми метрики, которые напрямую проверяют УТП или главный пользовательский сценарий. Пользователь нажал кнопку покупки. Начал создавать проект. Зарегистрировался. Перешёл в Telegram. Этого уже хватает, чтобы понять, работает ли сценарий и есть ли живой отклик.

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

Разберем именно такой вариант. Маленький Django-бэк один раз деплоится на простом хостинге, принимает события через пиксель, хранит их в SQLite и отдаёт статистику JSON-ответом. Дальше во всех новых фронтах меняются только названия event и src.

Особенно удобно это в тех случаях, когда фронт живёт на бесплатном или засыпающем хостинге. У free web services на Render сервис уходит в spin-down после 15 минут простоя, а файловая система там ephemeral, поэтому локальный SQLite для таких счётчиков работать не будет. В качестве простого примера отдельного маленького бэка можно использовать PythonAnywhere, где есть бесплатный аккаунт с одним web app. Но сама идея не привязана к этим площадкам и повторяется практически где угодно.

Читать далее

Как за выходные собрать сайт-визитку на чистом HTML/CSS использую нейронки

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

Меня зовут Богдан Непряхин, я CEO digital-агентства bijobs.ru. Мы занимаемся performance-маркетингом и аналитикой. Я выступаю на конференциях, рассказываю про Яндекс Директ, VK Ads, работу с данными. И вот в начале 2026 года поймал себя на том, что мне неловко давать ссылку на «страницу спикера». Потому что её не было.

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

Классический путь: дизайнер (15-40 тысяч, 1-2 недели) + верстальщик (15-30 тысяч, ещё неделя). Итого месяц и 30-100 тысяч за одностраничник. Для страницы, которую увидят десять организаторов. Я решил проверить, можно ли сделать это за выходные с Claude Code, нейросетевым ассистентом для работы с кодом.

Читать далее

Внедрение SEO в цикл разработки SDLC

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

Сайт запустили два месяца назад. Дизайн стильный, кнопки нажимаются, оплата проходит. Но органического трафика – ноль. SEO-специалист проводит аудит и выдаёт вердикт: «Нужно переписывать половину сайта. Каталог отрисовывается на клиенте через JavaScript – поисковый робот видит пустую страницу. URL-адреса выглядят как /page?id=37841. Структура заголовков отсутствует. Бюджет на разработку уже потрачен, и каждый час переделок стоит новых денег.

Знакомая ситуация? Она повторяется в половине проектах что приходят ко мне. Внедрение SEO на этапе разработки просто не запланировали. А ведь любой баг, пойманный на стадии проектирования, обходится в разы дешевле, чем тот же баг после релиза. Для SEO это правило работает точно так же: исправить структуру URL в проекте – 15 минут. Переделать маршрутизацию на продакшене – несколько спринтов и нервы всей команды.

Эта статья – мостик между SEO-специалистами и IT-командой. Вы узнаете, в какие именно точки жизненного цикла разработки ПО (SDLC – Software Development Life Cycle) встраиваются SEO-требования, и как разговаривать с разработчиками на одном языке.

Читать далее

JavaScript без мифов: синтаксический сахар, карьера и рынок — интервью с Дмитрием Колотильщиковым

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

JavaScript — редкий язык, который одновременно является «родным» для браузера и при этом давно вышел за пределы фронтенда: на нём пишут бэкенд, десктопные приложения, мобильные клиенты и даже игры. При этом вокруг JS всё ещё много путаницы — от «Java и JavaScript это одно и то же» до «фронтенд = кнопочки».

В этом интервью я, Александр Шулепов (телеграм-канал Shulepov Code), поговорил с Дмитрием Колотильщиковым — старшим разработчиком и автором канала «ИТ‑интроверт» — о том, как войти в профессию, почему Angular новичкам может навредить, зачем фронтендеру микрофронтенды, как устроены зарплаты и рынок за пределами России, и что на самом деле помогает дорасти до сеньора.

Читать далее

Разбираем net/http на практике. Часть 2.2: Архитектура и безопасность. Внедряем Clean Architecture, хэшируем пароли

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

Продолжаем писать сервис DeadDrop: сегодня идём от монолита к чистой архитектуре

В предыдущей части мы реализовали готовый прототип, но его код был спорным: от смешанной логики до хранения секретов пользователей в открытом виде - пора вносить правки!

Сегодня мы:

1) Превращаем "толстый" хэндлер в хорошее архитектурное решение с разделением слоёв

2) Хэшируем с bcrypt

3) Внедряем зависимости (DI) через интерфейсы

4) Готовим код к дальнейшему масштабированию

Рефакторинг, который не ломает проект, а делает его удобным для дальнейшей разработки!

Читать далее

Можно ли собрать рабочий сайт через ИИ, зная только базовый HTML

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

Когда говорят про создание сайтов с помощью ИИ, обычно звучат две крайности: либо магия уровня «нажал кнопку — получил готовый продукт», либо скепсис в духе «потом всё равно придется переписывать руками». А что, если проверить?

Привет! Меня зовут Кристина. Я работаю специалистом по автоматизации в Учебном центре IT-компании «Тензор». Недавно заказчик попросил меня сделать рабочий сайт максимально быстро. Четкого ТЗ и готового дизайна не было — только общее видение. Знакомая ситуация? На практике это происходит сплошь и рядом. Здесь как раз важно уметь работать в условиях неопределенности.

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

Спойлер: получится. Но не совсем так, как многие представляют.

Читать далее

Frontend Status: свежий дайджест фронтенда и AI — 18.03.2026

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

Привет!

Это девятый выпуск Frontend Status — дайджеста по фронтенд-разработке.

В этом выпуске:

📺 Разговор с Машей Кондрашиной из Авито о том, что в IT больше не спорят из-за технологий.

🤖 VS Code переходит на еженедельные релизы благодаря AI-агентам, Chrome объясняет разницу между MCP и WebMCP, а Эдди Османи вводит термин «comprehension debt».

⚛️ React получает shadcn/cli v4 с режимом для агентов, SvelteKit ловит FOWL, Astro v6 подтягивает данные из API прямо в content collections.

🌎 Chrome 146, Mozilla за анонимность в вебе.

🎨 Брэд Фрост о дизайне в эпоху AI.

📦 Эмпирическое исследование утечек памяти на 500 репозиториях.

...и многое другое.

Читать далее