Обновить
395.27

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

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

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

Прогресс разработки TypeScript 7: что уже работает и чего ждать

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

Команда JavaScript for Devs подготовила перевод большого апдейта от команды TypeScript. Разработчики рассказали, как идёт переписывание компилятора на нативный код, что уже работает в превью TypeScript 7, какие ограничения остаются и почему версия 6.0 станет последним релизом на JavaScript. Новый TypeScript обещает серьёзный рывок в скорости и стабильности — самое время понять, что нас ждёт.

Читать далее

CLI-инструменты в Битрикс: используем консоль вместо ручек

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

Всем привет! CLI-инструменты являются неотъемлемой частью любого PHP-фреймворка, они удобны для выполнения службных операций. В данной статье поговорим о том, какой инструментарий предоставляет нам Битрикс для разработки и обслуживания сайтов.

Читать далее

Как работают современные браузеры. Часть 1

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

Веб-разработчики нередко воспринимают браузер как «черный ящик», который каким-то чудом превращает HTML, CSS и JS в интерактивные веб-приложения. На самом деле современный браузер — будь то Chrome (на базе Chromium), Firefox (Gecko) или Safari (WebKit) — представляет собой чрезвычайно сложное программное решение. Он управляет сетевыми запросами, разбирает (парсит) и выполняет код, рендерит графику с ускорением на графическом процессоре (GPU) и изолирует контент в отдельных процессах для обеспечения безопасности.

В этой серии статей мы подробно рассмотрим, как устроены современные браузеры, сделав акцент на архитектуре и внутреннем устройстве Chromium, но также отметим ключевые отличия в других браузерах. Мы рассмотрим весь цикл: от сетевого стека и конвейера парсинга до рендеринга с помощью Blink, выполнения JS с помощью движка V8, загрузки модулей, многопроцессной архитектуры, песочниц безопасности и инструментов разработчика. Главная цель — дать понятное и доступное объяснение того, что происходит в браузере "под капотом".

Читать далее

Статичный сайт на webpack5 с svg sprite

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

Этот стартовый сборка для разработки статичного сайта на Webpack5. Максимально упростил разработку: можно подключать встариваемы модули шаблонов для страниц (header/footer), использовать SASS с удобными миксинами, автоматически собирать SVG-спрайты для иконок. Для продакшна - минификация CSS/JS, удаление console.log и разделение кода на чанки для кэширования.

Ключевые части сборки: html-webpack-plugin генерирует HTML из src/html/views, raw-loader подтягивает include-фрагменты.

SCSS миксины для удобных медиа запросов, краткой их записи +r($md).

Автоматическая генерация SVG-sprite, svg-sprite-loader собирает все src/icons/*.svg в inline-спрайт — иконки затем вставляются в шаблоны через .

Читать далее

Реактивная Архитектура: Пишем надежный Optimistic UI на чистом RxJS (Pattern Compensating Transaction)

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

Пользователи ненавидят спиннеры. Они хотят видеть лайк сразу после клика. Optimistic UI решает эту проблему, но создает новую: что делать, если сервер вернет ошибку?

В императивном коде (Promise/async-await) откат состояния превращается в ад из try/catch и ручных мутаций переменных, порождая Race Conditions.

В этой статье я покажу, как реализовать надежный паттерн Compensating Transaction на чистом RxJS. Мы построим архитектуру, где состояние это поток, который невозможно "сломать" частыми кликами или сетевыми сбоями. Никаких if/else, только чистые потоки.

Построить реактивный UI

Анализируем UDP логи Squid-proxy

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

Ремейк приложения SqStat, читаем access логи по UDP. Пока анализируем не более часа, а нужно ли больше? В наше время есть GrayLog, ELK c AI-агентами. Нужен ли нам звёздный крейсер? Статья про Squid в Docker, SSL bump, анализ access-логов, Bun, Elysia, Redis, Vue. Всего по чуть-чуть.

Хотите узнать больше?

GraphQL и REST: что и для чего выбирать

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

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

Сегодня мы разберём GraphQL — что это за инструмент, как он работает, какие задачи решает, где оказывается удобнее REST и почему многие компании выбирают его для новых проектов.

Читать далее

Тестируем новый TypeScript-Go в OpenIDE: что на самом деле даёт порт компилятора

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

Недавно команда TypeScript представила TypeScript 7 — новую версию, переписанную на Go. Главные обещания: до 10× ускорения компиляции и до 8× более быстрый старт анализа проекта. Но самое интересное спрятано чуть глубже: вместе с TS-Go появляется полноценный LSP-сервер, встроенный прямо в компилятор.

Для многих IDE это шаг вперёд.
Для нас, команды OpenIDE, — это ещё и освобождение от ограничений, с которыми TypeScript приходилось поддерживать долгие годы.

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

Читать далее

Анимация загрузки: как скорость влияет на восприятие времени и конверсии

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

Если вы пробовали внедрять российские 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 мин
Охват и читатели16K

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

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

Ух ты ж!

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Интересно

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

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

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

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

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

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

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

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

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

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

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

Читать далее

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