Обновить
256K+

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

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

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

Разработка TypeScript-библиотеки для построения реактивных графов распространения и обработки данных

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

Как построить гибкий реактивный граф обработки данных, где узлы изолированы друг от друга, а связи между ними строятся автоматически на основе их возможностей? Рассказываю о разработке Transferum — легковесной TypeScript-библиотеки для реактивных потоков. Внутри: разбор системы вычислимых типов для проверки контрактов в compile-time, управление маршрутизацией данных в графе и примеры построения динамических пайплайнов для IoT-датчиков и панелей управления.

Читать далее

Прототипирование фронта в 2к26 от системного аналитика

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

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

В 2026 году тот же путь можно пройти быстрее: передать ИИ требования и за несколько итераций получить кликабельный прототип на HTML, CSS и JavaScript — с формами, модальными окнами, валидацией и тестовыми сценариями.

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

Посмотреть, как это работает

Циклические реактивные зависимости

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

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

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

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

Вырваться из бесконечного цикла

Разработка — это больше не код. Как AI меняет работу инженера через управление контекстом

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


Всем привет!
Меня зовут Шадрин Дмитрий.
Хочу поделиться собственными наблюдениями и практическим опытом использования AI в производственной разработке.
За последний год вокруг искусственного интеллекта в разработке появилось огромное количество материалов.

Кажется, что каждую неделю появляется новая модель, новый IDE-плагин или очередной инструмент, который обещает ускорить разработку в несколько раз. Вокруг этой темы накопилось огромное количество обсуждений. Кто-то сравнивает качество генерации кода у разных моделей, кто-то пытается посчитать, сколько процентов работы разработчика можно автоматизировать уже сегодня, а кто-то всерьёз задаётся вопросом, останется ли профессия разработчика через несколько лет в её нынешнем виде. Эта тема вызывает много споров, эмоций и ожиданий.
Но, наблюдая за тем, как подобные инструменты используются в реальной разработке, я всё чаще прихожу к мысли, что самое интересное происходит совсем не там, где принято искать. На мой взгляд, главный эффект современных AI-инструментов заключается не в генерации кода.
Самые серьёзные изменения происходят в работе с контекстом. Современные AI-инструменты начинают автоматизировать задачи анализа требований, навигации по кодовой базе, поиска архитектурных зависимостей и оценки влияния изменений (impact analysis). Именно это сегодня начинает менять сам подход к инженерной работе.
Я с большим интересом наблюдаю за всеми этими дискуссиями. Мне самому близка тема инженерных инструментов. За последние годы я успел поработать в разных компаниях, на разных ролях и с очень разными системами.
Сейчас я занимаюсь развитием корпоративных систем для оптовой торговли, франчайзинговых партнёров и интеграции с маркетплейсами в компании SM Lab. До этого был опыт работы в финтехе Яндекса, где приходилось проектировать и запускать сервисы, работающие под высокой нагрузкой и в условиях серьезных регуляторных ограничений.

Читать далее

Как VPS с 1 ГБ RAM пережил 1,2 млн запросов за сутки: разбираю «Шакализатор» по слоям

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

Мой мемный сервис «Шакализатор» победил в премии Яндекс Практикума, но меня больше интересовал другой вопрос: как VPS с одним ядром и 1 ГБ RAM пережил 1,2 млн запросов за сутки?

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

Почему он не упал

Mermaid как платная AI функция в проекте Django/Next

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

Mermaid это текстовый формат описания диаграмм. В строках задаются тип схемы, узлы и связи. На выходе получается SVG. Формат подходит для API и базы данных. Код можно сгенерировать, проверить, сохранить, открыть повторно и отрендерить на клиенте.

В mermind/views.py добавлен 503, если ответ модели не начинается с валидной головы Mermaid. Без этой проверки запрос завершается успешно, ответ от модели приходит, но диаграмма не строится. В ответе остаются fenced-блоки, Markdown, строки с #, служебный текст и фрагменты до первой строки диаграммы.

В проекте собран полный серверный и клиентский контур. Генерация, очистка ответа, проверка, рендер, повторная правка, сохранение и библиотека.

Как извлекать Mermaid-код из ответа модели. Ответ сначала режется до fenced-блока. Потом проверяется первая строка.

Читать далее

Что такое качественный антидетект‑браузер и почему мы написали свой, когда рынок уже перегрет

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

Представьте себе огромный, гудящий рынок электроники для «своих» — такая классическая гиковская Мекка. Вокруг снуют суровые инженеры, пахнет канифолью. На прилавках можно найти всё: от редких микросхем и серверных стоек до самописных контроллеров для умного дома.

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

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

В данном материале разберем что такое антидетект-браузер и как он работает. Информация из первых уст!

Читать далее

Вышел Nuxt 4.5

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

Nuxt 4.5 это действительно крупный релиз. В нём обновили сразу три ключевых компонента системы сборки: Vite 8, Rspack 2 и совершенно новый пайплайн на базе Rsbuild для сборщика Rspack.

Также появились экспериментальный режим потокового SSR, стабильная система кодов ошибок, несколько новых composables и соглашений, а ещё множество внутренних улучшений, которые приближают нас к Nuxt 5.

Читать далее

FFmpeg в браузере: как мы сделали медиа-конвертер, который ни разу не обращается к серверу

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

Конвертация медиа. Люди решают эту задачу десятки раз в неделю. Видео с дрона нужно перевести в MP4 для мессенджера, HEIC с айфона в JPEG для сайта, аудиозапись интервью обрезать и сжать. Обычно это выглядит так: человек открывает один из сотен онлайн-конвертеров, загружает туда полугигабайтный файл, ждёт, пока он доползёт до сервера, потом ждёт очереди, потом скачивает обратно. Параллельно его файлы лежат на чужом сервере, о чём мало кто задумывается (а зря, если речь про корпоративный договор или личное видео).

Мы решили проверить, можно ли полностью убрать из этой схемы сервер. Чтобы конвертация происходила целиком в браузере, на устройстве пользователя. Без загрузок, без очередей, без серверных затрат. Так появился BrowsersKit: набор инструментов (медиа-конвертер, PDF, математика, Python-песочница), работающих на клиенте. Дальше расскажу, как это устроено внутри, какие грабли нас поджидали и как мы с ними справились.

Читать далее

Крупнейшие российские регистраторы доменов не отвечают на тикеты. Что происходит и как спасти инфраструктуру?

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

Я администрирую несколько доменов в зонах.org,.su,.ru,.net. Хостинг в РФ, даунтайм критичен, трафик идет постоянно. Домены продлялись годами через личный кабинет автоматическим списанием с баланса — всё стандартно. 

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

В чем проблема

Эмиграция в США после 30: от подработок на складе до Apple, своей школы и разработки с ИИ

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

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

Я, Александр, автор телеграм-канала «Shulepov Code», поговорил с Виктором Богуцким — разработчиком, который переехал в США в 2016 году, прошёл путь от физической работы и десятков отказов до позиции в Apple и eBay, а сейчас основателем школы программирования PASV.   

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

Читать далее

Как мы вышли на $3000+ в месяц на приложении для транскрибации YouTube-видео

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

Разбираю, как мы вышли на $3000+ в месяц на приложении для транскрибации YouTube-видео, продвигая его через сайт, оптимизированный под разные поисковые запросы. За полгода он вырос до 140 000+ переходов из поиска, несмотря на жесткую конкуренцию с бесплатными сервисами транскрибации и самим YouTube.

Читать далее

Как я собрал систему из девяти скиллов для Claude Code, которая не разваливается на длинных

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

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

Собрал систему скиллов для Claude Code, которая эту стену обходит не за счёт «более умного» агента, а за счёт архитектуры. Девять скиллов, набор всегда активных правил, сабагент-ревьюер.

Внутри — разбор механики:

— Три слоя по частоте: always-on правила / скиллы по требованию / глубокая детализация в references, которая грузится только когда реально нужна. В контексте одновременно — правила плюс один-два скилла плюс максимум один reference, а не весь справочник разом.

— Оркестратор как диспетчер, а не исполнитель: он знает порядок фаз и кому делегировать, но не содержит предметного знания.

— Сабагент-ревьюер без прав на запись, который обязан помечать unverified (no browser tool) вместо того, чтобы выставить правдоподобную оценку по осям, которые он физически не проверял.

— Capability-check: агент инвентаризирует доступные инструменты до начала работы и докладывает пробелы вместе с фолбэками, а не проваливается молча.

Репозиторий открыт, ссылка в статье.

Читать далее

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

Как ИИ помог автоматизировать контент с помощью Pandoc, bash и пары утилит

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

Привет, на связи Влада, веб-специалист ЮMoney. Год назад я рассказывала на Хабре, как контент-менеджеру пригодятся терминал, Git и несколько десятков строк кода.

С тех пор многое изменилось. В работе появился ИИ — инструмент, снизивший порог входа в автоматизацию. Не потому, что пишет код вместо нас, а потому, что ускорил создание небольших утилит под наши процессы.

Расскажу, как из одного bash-скрипта вырос набор внутренних инструментов для контент-команды. Идеи пригодятся техническим писателям, контент-менеджерам и всем, кто регулярно работает с Markdown, XML и CMS.

Читать далее

Ваше «приложение» могло быть просто сайтом (и я ему в этом помог)

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

Этим летом наша детская школа искусств выступает с песнями и танцами на шоу в Диснейленде. Мы все предвкушаем поездку, но мою радость слегка омрачил тот факт, что для доступа к расписанию, графику поездки и информации о проживании придётся установить приложение Travelbound.

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

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

Читать далее

Не отдам Gpick! Он хороший! Но крутить педали придётся…

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

Исторически лучший Gpick в KDE на Wayland остался без пипетки, а штатные kcolorpicker-ы повергают в печаль и уныние. Что делать? Велосипедить! Написал лёгкий Python-скрипт, дёргающий родной XDG-портал.

UPD: Прокачал утилиту до полноценного комбайна — теперь она выдаёт чистые данные без префиксов, умеет копировать конкретные форматы (HEX, RGB, HSL) в буфер и идеально встаёт в любые shell-конвейеры и хоткеи. Больше велосипедов богу СПО!

Читать далее

P.S.Euclid — GeoGebra + Desmos + то, что сам хотел (Plane + Stereo, Euclid)

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

P.S.Euclid — это браузерное математическое приложение, в котором графики, динамическая геометрия и 3D-построения объединены в одной среде. В статье я расскажу о возможностях проекта: от обычных функций и геометрических конструкций до пространственных поверхностей, сечений и численного поиска пересечений.

Читать далее

Multi-tenant Битрикс24 в трёх проектах: три архитектуры OAuth-токенов и лицензирование через материнский смарт-процесс

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

За полгода написал ряд интеграций с Битрикс24 в разных архитектурах: приложение для Маркета (PHP, 6 порталов), клиентский расчётный сервис (Node.js + PostgreSQL) и cron-синхронизатор legacy-CRM без UI и без OAuth вообще. Мультитенант везде решён по-разному, и это не случайность, ведь каждая архитектура точно закрывает свою нишу.

Внутри: сравнение трёх способов хранить OAuth-токены под 6+ порталов, разбор пяти неочевидных деталей REST API (oauth.bitrix24.tech-обход, POST vs GET на рефреше, rate limit 2 req/sec, batch на 50, буфер 5 мин), куски кода на PHP и TypeScript.

Отдельная часть — лицензирование через материнский смарт-процесс. У продукта, распределённого по клиентским порталам, нет своего backend’а, поэтому control-plane я вынес на служебный портал агентства: смарт-процесс «Лицензии», бизнес-процесс на изменение счётчика запросов, webhook approve/decline с secret. Такого паттерна в документации Битрикс24 нет — а он работает уже несколько месяцев и не требует ничего сверх штатной функциональности платформы.

Матрица «что выбирать под задачу» в конце.

Читать далее

Сегодня я для себя открыл: Pony ORM

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

Дорогие читатели, сегодня я расскажу о Pony ORM, которая во многих отношениях должна быть примером для других ORM: она дружественная к пользовалю, ведёт себя предсказуемо и, что немаловажно, имеет хорошую производительность. Речь пойдёт, в основном, не о фичах для пользователя, которых много и о которых можно узнать в этих видео 1, 2, а о её внутренней архитектуре.

Читать далее

Как сделать типобезопасный клиент для Strapi: разбираем вывод типов из populate на уровне компилятора

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

У любого запроса к Strapi есть неприятное свойство: форма ответа зависит от того, что вы попросили. Запросили статью без populate — в ответе только скалярные поля. Добавили populate: { category: true } — появилась вложенная категория. Добавили fields: ['name'] внутри populate — категория пришла обрезанной. Один и тот же эндпоинт возвращает десятки разных форм, и статический TypeScript-интерфейс ни одну из них честно не описывает: он либо врёт (обещает поля, которых в этом конкретном ответе нет), либо бесполезен (any).

В этой статье я разберу, как решить эту проблему кодогенерацией: как достать схему из работающего Strapi, сгенерировать по ней TypeScript-клиент и — самое интересное — как заставить систему типов вывести форму ответа прямо из аргумента populate на этапе компиляции. Подход Prisma-подобный: возвращаемый тип метода зависит от того, что вы передали в вызов. Код — на TypeScript; клиент, на примере которого я всё показываю, open-source под MIT, ссылка в конце.

Как это устроено