Обновить
512K+

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

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

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

Знакомство с командой платформы веб

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

У каждого сервиса в Иви есть свои хранители. У веба — команда «Гамбит», которая делает так, чтобы сайт оставался тем самым местом, с которого начинается путь зрителя в мир контента. Они не просто пишут код, а выстраивают целую экосистему, где скорость, стабильность и забота о пользователе переплетаются с экспериментами, AI-инструментами и собственным мерчем. В этой статье Дмитрий Абраменко, технический менеджер платформы веб, приоткроет завесу тайн своего направления и расскажет больше о команде.

Читать далее

Добавляем в бизнес‑портал Битрикс24 роботов для автоматизации

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

В прошлой статье мы сделали первое пробное фронтенд-приложение.

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

Для проекта используем специально подготовленный для работы с AI-агентами шаблон AI-стартера, где уже заложены подробные инструкции для работы с ИИ.

В статье — описание всех изменений, возможных проблем во время работы и их решения. И ссылка на репозиторий с проектом, конечно.

Что есть в других статьях на сегодня:
1. Пишем первое приложение с AI-стартером, чтобы видеть прибыли и убытки
2. Добавляем в бизнес-портал Битрикс24 роботов для автоматизации (вы здесь)
3. Что даёт воспроизводимая среда разработки и как развернуть контейнеры на VPS.
4. Анализ и модернизация коннектора баз данных с помощью AI-агентов
5. Создание чат-бота в портале Битрикс24 с помощью AI-агентов

Читать далее

JS — мне сегодня 30 лет

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

В 2025 году JavaScript исполнилось 30 лет — хороший повод попытаться объять необъятное разобраться, как он меняется и в каком направлении развивается. За три десятилетия язык переживал периоды скепсиса и бурного роста, обрастал экосистемой и стандартами, и в итоге вышел далеко за пределы браузера, охватив серверную и кросс‑платформенную разработку.

Всем привет! Меня зовут Владимир, я разработчик СберБанк Онлайн в канале «веб», и в этой статье я хотел бы затронуть этапы эволюции JavaScript, зафиксировать нововведения спецификации ECMAScript 2025, разобрать наиболее значимые предложения для будущих версий стандарта и попытаться понять его место в эпоху стремительного развития ИИ.

Читать далее

Почему JavaScript-функция RegExp.escape() экранирует латинские буквы, пробелы и ухо луны

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

Случайно увидел результат работы функции RegExp.escape() и был удивлен, потому что она заэкранировала пробелы, все спецсимволы, а также цифры и латинские буквы в начале строки. До появления RegExp.escape() (а она стала доступна в популярных браузерах лишь в 2025 году) я, как и многие другие, писал аналогичную функцию сам, но без экранировки вышеперечисленных символов. Получается, что я ошибался, и нужно бросать все дела, рыться в старых исходниках и переписывать функцию? И да, и нет.

/^Читать\s+далее$/

Laravel 13. Что нового?

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

Очередной релиз фреймворка с акцентом на нативные AI-воркфлоу, дефолтная безопасность и более выразительные API. Основные нововведения: встроенные AI-инструменты, JSON:API ресурсы, семантический/векторный поиск, улучшения очередей и кэша. Обновление через AI.

что нового

Поднимаем интернет-радио на AzuraCast

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

Интернет-радио никуда не исчезло, оно просто ушло в сеть. В этом руководстве показываем, как за 15 минут поднять собственную радиостанцию на VPS с AzuraCast: загрузить музыку, настроить эфир, подключить домен и получить API для интеграций.

Читать далее

Делаем ужасный интерфейс только при помощи HTML и CSS

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

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

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

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

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

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

Читать далее

Миграция с Supabase на VPS PostgreSQL без downtime: dual-write, strangler pattern и SSR read-path

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

TL;DR

Мигрировал продакшн базу с Supabase на VPS PostgreSQL прямо на работающем проекте — без остановки, без потери данных. Заодно перенёс авторизацию через strangler-подход и убрал Supabase из SSR read-path. Расскажу три инженерных решения с кодом.

Читать далее

Авторизация — это про «изобретать велосипед», возиться с OpenSource, или о чем? Предлагаю альтернативу — «Авториза»

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

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

И я хочу обратиться к вам как профессионалам своего дела: А какие инструменты используете вы? Какие у вас возникают проблемы? Насколько быстро, дешево и просто вы их решаете?

Читать далее

Разбираем net/http на практике. Часть 2.1: POST, файлы и in-memory хранилище

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

Предыдущая статья

Продолжаем создавать сервис анонимных «мертвых ящиков» DeadDrop на чистом Go.

Во второй части (первый подвыпуск) закладываем фундамент: учимся принимать POST-запросы, загружать файлы с проверкой MIME-типа и размера, создаём in-memory хранилище с потокобезопасным доступом через RWMutex. Пишем утилиты для генерации криптостойких ID и паролей. Разбираемся с интерфейсами и готовим архитектуру к дальнейшему развитию.

Без фреймворков, только net/http и стандартная библиотека.

Читать далее

Почему нормализация контактных данных сложнее, чем кажется: опыт разработки движка очистки CRM-баз на Python

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

Грязные данные в CRM — это всегда дубли, ошибки в рассылках и «кривая» аналитика. В статье рассказываю, как я реализовал API для автоматической нормализации телефонов, email и имен на FastAPI, и почему простая проверка регулярками не заменяет систему оценки качества данных (QC).

Попробовать Demo API

Temporal: долгий процесс решения проблемы времени в JavaScript

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

Как меняется JavaScript?

JavaScript уникален тем, что работает во всех браузерах. У него нет какого-то одного «владельца», поэтому нельзя внести изолированное изменение и ждать, что оно будет применено везде. Эволюция происходит через TC39 — Технический комитет, отвечающий за ECMAScript.

Предложения должны пройти последовательность этапов развития:

• Этап 0: идея.

• Этап 1: принято пространство задач.

• Этап 2: выбрана архитектура драфта, но работа продолжится.

• Этап 2.7: предложение одобрено в принципе; ожидает тестирования и обратной связи.

• Этап 3: реализация и обратная связь.

• Этап 4: предложение стандартизовано.

В 2018 году, когда я впервые изучал Temporal, он находился на Этапе 1. Комитет TC39 был убеждён, что проблема реальна. Это было радикальное предложение по добавлению в JavaScript новой библиотеки дат и времени. Она должна была:

• Стать заменой Date.

• Добавить новые типы DateTime (вместо единого API).

• Стать неизменяемой.

• Добавить поддержку часовых поясов и календаря.

Но как мы к этому пришли? Почему Date вызывает столько проблем? Чтобы ответить на эти вопросы, нужно вернуться назад.

Читать далее

ООП для управления состоянием во Vue

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

Чувак, уже есть Pinia, Pinia Colada, TanStack Query для Vue, зачем ещё один способ управлять состоянием во Vue?

Меня просто задолбало писать везде флаги отслеживания состояния для действий и делать store через фабричную функцию, как это делали наши праотцы в начале 2000-х. Запоминать зоопарк из разных composable-функций и хуков. Изучать какую-то другую систему реактивности, типа MobX, тоже не хочу. Это какой-то зашквар.

Я хочу использовать то, что есть: реактивность Vue везде, классы, методы. Хочу использовать классические шаблоны: SOLID, DDD и т.п. Хочу, чтобы Действие или запрос сами отслеживали и сообщали своё состояние. Хочу сконцентрироваться на бизнес-логике и писать меньше шаблонного кода.

И это возможно, покажу, как это работает на примере.

Погнали, если интересно

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

Дроны над Дубаем и новостной агрегатор: Flask, MCP-сервер, AI-агент и Telegram-бот

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

28 февраля 2026 года я стоял у окна на 41-м этаже в JBR в Дубае и смотрел, как системы ПВО ОАЭ перехватывают иранские беспилотники прямо над моей головой. Полез в новости — в Google и Яндексе статья двухчасовой давности, Telegram-каналы противоречат друг другу. Когда это происходит где-то далеко, не придаёшь этому значения. Когда ты в центре событий, то хочешь знать оперативную информацию, желательно с push-уведомлениями.

Читать далее

Собрал EdTech-платформу за неделю. Разбираю свой workflow по шагам

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

В марте 2023 я написал статью «ChatGPT: новый инструмент в борьбе с багами». Показал как нейросеть генерирует тест-кейсы, ищет XPath-локаторы и пишет SQL-запросы. 40 000+ просмотров. Первая статья на эту тему в рунете.

Ты сейчас подумал «ну и что, таких статей теперь тысячи». И ты прав. Но подожди.

За 3 года я прошёл путь от «вау, ChatGPT написал мне 10 тест-кейсов» до «я один собрал образовательную платформу за неделю». И это НЕ кликбейт.

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

Читать далее

Reactive Route — новый роутер для разных фреймворков и реактивных систем в 2 КБ

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

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

Но и желание помогать другим и делиться выстраданными подходами, экспертизой и конкретным кодом мне не чуждо - сегодня поможешь ты, завтра - тебе. Через полгода подготовки и адаптации к OpenSource (сам использую и дорабатываю около 8 лет) в свет выходит одна из библиотек моего рабочего контура - Reactive Route.

Так как я работаю с проектами на разных стеках, стараюсь писать код максимально framework-agnostic - независимыми слоями, которые можно заменить или переписать, не трогая остальной код проекта. А к фреймворкам и библиотекам для работы с состоянием они подключаются с помощью легковесных адаптеров, сохраняя синтаксис работы. Конкретно для Reactive Route выложил набор готовых адаптеров в комбинациях, которые сейчас чаще всего использую:

React + MobX / Observable

Preact (no compat) + MobX / Observable

Solid.js + нативная реактивность / MobX / Observable

Vue + нативная реактивность

В одном npm-пакете - строгая TS-типизация, SSR / MPA / no-JS / Widget режимы и тщательно протестированная отказоустойчивость. В статье не буду пересказывать документацию на русском и английском, а поговорю скорее про общие принципы качества, использование ИИ в разработке и почему многие библиотеки раздуваются, не успев даже стабилизировать ядро.

Читать

Мой овердофига усложненный Майнкрафт сервер

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

Каждый год в моей компании друзей наступает «неделя Minecraft» — время, когда мы все снова начинаем играть вместе. И, как обычно, на мне лежит задача поднять сервер для всей компашки.

Читать далее

Claude Cowork в браузере: 10 сценариев для автоматизации рутины

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

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

Я разобрала, как с помощью ИИ-агента Claude Cowork и расширения для Chrome автоматизировать работу в браузере и освободить время для более важных задач.

Внутри - 10 готовых сценариев, которые можно применить уже сегодня.

Читать далее

Когда фронтенд перестаёт быть игрушкой: пишем собственный реактивный движок на JavaScript

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

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

Читать далее

5 RxJS операторов в Angular, которые решают 80% проблем

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

Стоит начать с боли всех разработчиков Angular: когда начинаешь свой проект, всё чисто и красиво. Но когда проект уже идёт, появляются подписки на подписки, данные из разных запросов нужно объединить, а пользователь начинает нажимать кнопки слишком быстро.

И здесь приходит на помощь RxJS

RxJS часто пугает своей сложностью. Прикол в том, что вам не нужно знать все 100+ операторов. Достаточно освоить базовую пятёрку, которая покроет 80% проблем.

Читать далее