Обновить
353.97

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

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

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

HTML как архивный формат. Локальные мини-сайты

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

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

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

Один из вариантов — генерация локальных мини-сайтов с перекрёстными гиперссылками. В таком виде информация воспринимается очень комфортно.

Читать далее

RBACX — универсальный RBAC/ABAC-движок авторизации для Python

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

RBACX — авторизация без боли в Python-проектах

Когда доступ «размазан» по вьюхам и миддлварам, ревью и тесты превращаются в квест - появляется мотивация все это унифицировать. Я написал RBACX — лёгкий движок, где правила описываются декларативно (JSON/YAML), а проверка прав — это один понятный вызов. В статье показываю, как собрать из него аккуратный PDP для микросервисов и монолитов.

Я последние два года пишу бэкенд в стартапе MindUp — это мой первый пост на Хабре, и первая библиотека. Буду рад вопросам и критике. Если тема авторизации болит так же, как у меня, загляните!

Читать далее

Настройка Express 5 для продакшна в 2025 году. Часть 1

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

Эта статья поможет вам создать приложение Express 5 с поддержкой TypeScript.

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

Настоятельно рекомендую писать код вместе со мной. Мы будем использовать подход "Разработка через тестирование" (test-driven development, TDD) для создания REST API, который может стать основой вашего следующего приложения Express.

Читать далее

Чем грозит вашему проекту установка пакетов «вслепую»

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

Доброго дня, читатель! Меня зовут Александр Роут, я фронтенд‑разработчик в Домклик. 

В сентябре 2025 года в экосистеме npm произошёл тревожный инцидент: злоумышленники получили доступ к репозиториям нескольких популярных пакетов и внедрили в них вредоносный код. Этот код мог подменять адреса криптокошельков и перехватывать финансовые транзакции.

Эта атака — не первый и не последний случай в истории. Она вновь подняла важный вопрос «Насколько мы можем доверять сотням зависимостей, которые добавляем в свои проекты?» Часто мы устанавливаем пакеты, практически не задумываясь о том, что именно скачиваем и запускаем. Особую опасность представляют postinstall‑скрипты, которые могут выполнять произвольные действия на вашем компьютере сразу после установки.

Читать далее

Кастомизация Keycloak: Keycloakify вместо Freemarker – причины, боли, решения

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

Всем привет! Меня зовут Артем, я фронтенд разработчик в Банки.ру. Недавно перед нашей командой встала задача внедрить SSO-аутентификацию через Keycloak для клиентских сервисов. Помимо базовой настройки важно было полностью переработать стандартные формы входа, чтобы они соответствовали корпоративному стилю и UX-требованиям.

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

Читать далее

Топ-9 ИИ-плагинов для WordPress

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

Большинство современных ИИ-решений для WordPress работают по принципу облачной интеграции. Плагины подключаются к ИИ-сервисам через API, позволяя использовать технологии искусственного интеллекта прямо в панели управления WordPress.

Читать далее

Операторы rest и spread в JavaScript

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

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

Привет, Хабр! Меня зовут Александр Дудукало, я автор базового курса по JavaScript. В этом тексте на примерах разберемся, что означает каждый оператор и как использовать их на практике. Подробности под катом!

Читать далее

Список докладов с PythoNN в рамках ITGorky

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

Всем привет! Сегодня продолжаем нырять в глубины питона, но в другом формате.

В субботу (20 сентября 2025го) у нас завершилась наша первая бесплатная конференция сообществ Нижнего Новгорода.

На ней у нас был шикарный Python-трек с очень глубокими докладами от наших любимых хабравчан про устройство разных частей интерпретатора и несколькими вводными на смежные темы. Выступали и новички, и «старички» :)

Как по мне — вышло отлично.

Под катом будет полный список докладов и материалов, заходите и смотрите!

Читать далее

Как мы делали стартап, и почему у нас не получилось

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

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

Что делать в такой ситуации?

Некоторых всё устраивает — они начинают больше времени уделять хобби, а работа остаётся просто работой. Но есть люди, для которых работа и есть хобби. Таким особенно тяжело. Да, можно попросить новые задачи, взять на себя больше ответственности. До определённого момента это работает, но бизнесу нужен человек надолго — который будет стабильно выполнять возложенные обязанности. Это предсказуемо и выгодно бизнесу. Что же делать таким людям?

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

Как справиться с рутиной? Как сделать жизнь интересной, если писать код — не только работа, но и хобби?

Единственный путь, который я вижу — параллельно с основной работой заниматься pet-проектами, открытым исходным кодом, развивать личный бренд, заниматься менторством.

Читать далее

Разработка просветительского портала «ПроПаллиатив»: взгляд изнутри

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

Всем привет, на связи Андрей! 

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

Читать далее

Большой гайд как соответствовать ожиданиям работодателя в IT

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

Ты думаешь, что в IT достаточно быть сильным специалистом? Ошибаешься. Работодатели ждут от тебя гораздо большего, и часто об этом не говорят прямо.

Читать далее

Без головы но с идеями: как Strapi оживляет Next.js

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

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

Меня зовут Дмитрий Гусаков, я менеджер проектов компании DD Planet. Рад поделиться с вами материалом, который, надеюсь, будет полезен всем, кто следит за эволюцией веб‑разработки и ищет современные подходы к созданию гибких и производительных проектов. Сегодня я расскажу про связку, которая уже стала стандартом для многих команд — Strapi + Next.js. Это не просто инструменты, а целая философия, где скорость, контроль и свобода творчества выходят на первый план.

Читать далее

React-монополист: как мы сами убиваем развитие фронтенда

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

Команда JavaScript for Devs подготовила перевод статьи о том, как доминирование React сдерживает развитие фронтенда. Автор утверждает: выбор React «по умолчанию» тормозит инновации, мешает развитию альтернативных фреймворков и превращает всю экосистему в монокультуру.

Читать далее

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

Steroids Form — как создать собственный движок форм для React

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

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

Читать далее

Отправиться на тот цвет: CSS Color 4. Как добавить яркие краски в серые веб-будни

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

Привет! Меня зовут Антон Романов, я старший Angular-разработчик в Т-Банке, занимаюсь платежными формами T-Pay QR.

Поведаю о цветовых пространствах спецификации CSS Color 4, объясню их уникальность и специфику, расскажу о сценариях применения и плюсах, которые можно от этого получить.

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

Читать далее

Чистый код на TypeScript: практические советы

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

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

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

Читать далее

Django Templates: всё, что вам нужно знать

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

Команда Python for Devs подготовила перевод большого туторила по Django Templates. В статье подробно разбирается, как устроен язык шаблонов Django, чем он отличается от Jinja, как правильно наследовать шаблоны и организовать структуру проекта. Если вы хотите сделать свои Django-приложения более чистыми, поддерживаемыми и быстрыми — этот материал для вас.

Читать далее

Достаточно ли ru-RU для указания языка на веб-странице

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

Вы добавили в настройки интерфейса строчку ru‑RU и решили, что локализация завершена, пользователи довольны. Поздравляем: вы официально вступили в ряды тех, кто ещё не видел, как выглядит языковой тег «во всей своей красе».

Когда пользователь открывает страницу в браузере, тот отправляет на сервер данные о языковых предпочтениях посетителя, и это далеко не всегда что‑то простое. Здесь мы рассмотрим, как именно указывается конкретный язык. Стандарт, в соответствии которым это происходит (RFC 5646), — ворота в языковой мультивселенную, где sl‑rozaj‑biske-1994 звучит как заклинание, а x‑private‑foo может означать что угодно — от диалекта вашей бабушки до внутреннего сленга команды маркетологов.

Читать далее

Почему «безлимитная пропускная способность» — всё ещё ложь в 2025 году

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

«Безлимитная пропускная способность включена!»

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

И всё же они там, красуются на главных страницах как почётный знак. Безлимитная пропускная способность. Безлимитная передача данных. Безлимит во всём. Хостинговый эквивалент абонемента в спортзал «безлимитные занятия», где вас не пускают, если вы приходите слишком часто.

А что происходит на самом деле, когда вы пытаетесь использовать эту «безлимитную» пропускную способность у большинства провайдеров? Ваш аккаунт блокируется за «нарушение» или «превышение лимитов». Хостинг‑компания тыкает пальцем в зарытый глубоко в пользовательском соглашение пункт, который определяет «безлимит» как «всё, что мы сочтём разумным». Ваш сайт ложится, бизнес страдает, а вы понимаете, что их безлимит на самом деле означает «лимитировано тем, что мы решим в любой момент».

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

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

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

Чё?

Цифровой щит: тандем WAF и API Firewall

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

Веб-приложения и API — это полноценные точки входа в бизнес. Через них проходят транзакции, данные, сценарии пользователей и интеграции с партнерами. Чем больше сервисов, тем шире поверхность атаки. И тем выше шанс, что в потоках легитимного трафика окажется что-то лишнее.

В первой половине 2025 года российские компании зафиксировали более 63 000 атак. Это на 27 % больше, чем в прошлом году!

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

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

Как раз об этом всем и пойдет речь в этой статье. Она для тех, кто хочет понять, зачем нужны WAF и API Firewall вместе.

Читать далее

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