Обновить

Бэкенд

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

Почему HTTP-вызов не укладывается в таймаут: очереди, ретраи и asyncio

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

Добавили в HTTP-клиент таймаут, повторы и ограничение одновременных запросов. Кажется, всё предусмотрели, но вызывающий код почему-то ждёт дольше, чем рассчитывали. Я собрал стенд на aiohttp, чтобы разобраться, как так получается и где нужно поставить deadline, чтобы в общий бюджет попало и ожидание в очереди, и все повторные попытки.

Читать далее

Новости

Баг в 0,001% запросов: как Cloudflare ловил пустые ответы MySQL из-за общего кэша

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

Инженеры Cloudflare рассказывают, как искали баг в Hyperdrive, пулере соединений для MySQL: примерно один запрос из 100 000 возвращал пустой ответ там, где данные точно были. Трассы не ловились, сеть была ни при чём. Причиной оказалась ошибка в самом Hyperdrive: он кэшировал байты в формате Worker, а соседний узел с общим кэшем ждал формат Hyperdrive. Расхождение вскрылось из-за различий в возможностях протокола MySQL (драйвер mysql2 не поддерживает CLIENT_DEPRECATE_EOF). Заодно две истории про кодировки: согласование устаревшего utf8 вместо utf8mb4 и сброс соединения, возвращающий кодировку сервера по умолчанию.

Читать далее

Make Perl Great Again. Часть 1: Hello World

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

Все знают, что любая книга по программированию начинается с приведения примера программы hello world. Я тоже не буду оригинальничать и покажу, как надо писать hello world. Но в отличие от других авторов, которые очень быстро переходят от этой программы к каким-то очень высоким материям, философским обоснованиям, паттернам программирования и шаблонам проектирования (чтобы это всё ни значило), я ограничусь только hello world. Кто-то же должен заполнить пробел между hello world и… веб-сервером :)).

Читать далее

Пять стадий принятия ИИ: история болезни одного разработчика

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

В 1969 году психиатр Элизабет Кюблер-Росс выпустила книгу «О смерти и умирании». В ней она описала, как человек переживает неизбежное: отрицание, гнев, торг, депрессия, принятие. Писала она о неизлечимо больных пациентах, но модель оказалась настолько универсальной, что её теперь примеряют на что угодно: от расставания до повышения ставки по ипотеке.

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

Читать далее

Как мы довели Postgres Pro до APDEX 0,986 на 30 000 пользователей 1С:ERP. Часть 3/3

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

Мы дошли до финала: 30 000 ВРМ, 4 NUMA-узла, сервер на 480 логических ядер и APDEX = 0,986 в конфигурации с асинхронной репликой. Но на последнем отрезке пути нас ждали сюрпризы. Один процесс Xorg загружал целое ядро и тормозил тонкие клиенты. INSERT на 15 строк висел больше 20 секунд из-за блокировок BufferMapping. Подключённая реплика заставила rphost съедать вдвое больше памяти и уронила кластер 1С. Рассказываем, как мы с этим справились и что вошло в Postgres Pro Enterprise for 1C 18.6.1.

Читать далее

Прорастание в собственный контур

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

Часть один

Имеется большая часть кодовой базы, в которой есть логика, которую требуется вынести...

Один, два, три

Читать далее

Кoгдa яблoкo yпaлo cлишкoм близкo не к той яблoнe: copy-paste oшибки в cтpyктypнo изoмopфнoм Go кoдe

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

Bы нaвepнякa дeлaли этo мнoгo paз: нaшли в пpoeктe пoдxoдящий для peшeния зaдaчи кoд, cкoпиpoвaли, зaмeнили в кoпии пepeмeнныe или вызoвы фyнкций нa дpyгиe, нo пpи выпoлнeнии пoлyчили нe тo пoвeдeниe, которое oжидaли? Bepoятнo, пpи peдaктиpoвaнии чтo-тo ycкoльзнyлo oт вaшeгo внимaния. Имeннo тaк poждaютcя oшибки, o кoтopыx пoйдёт peчь в этoй cтaтьe.

Читать далее

Оркестратор Apache Airflow: что это и как используется в BI и DWH

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

В статье разбираем, как устроен Apache Airflow 3, для каких задач он используется, какую роль играет в архитектуре DWH и BI, и когда его стоит выбирать для оркестрации процессов обработки данных. Сравниваем с Prefect и Dagster.

Читать далее

Как мы сократили поток событий в 600 раз с помощью FlinkSQL

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

Привет! Меня зовут Сергей Прокопкин, я развиваю мотивационную программу и отвечаю за realtime-систему трекинга заданий в Авито. 

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

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

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

Читать далее

Kaspi в Telegram-боте: QR, вебхук и сверка без скриншотов (Python, aiogram 3)

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

В Казахстане продажа через Telegram часто выглядит так: «переведите на Kaspi», скриншот, ручной поиск платежа в приложении. Медленно, не работает ночью и ломается о поддельные чеки.

Разбираем бота на Python (aiogram 3), который сам выставляет QR Kaspi Pay, узнаёт об оплате за секунды и выдаёт товар. По шагам — всё, на чём такие интеграции обычно ломаются: подпись вебхука по сырому телу, повторные доставки, Idempotency-Key, истёкший QR, «тихая» смерть сессии Kaspi и сверка по таймеру, если вебхук потерялся. В конце — схема хранения в Postgres и полный код.

Читать далее

Как мы сделали HR‑аналитику на Nova вместе с Kimi Code

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

Над системами аналитики мы обычно работаем командой: менеджер, фронтенд и бэкенд. Но в этот раз фронты были загружены, и проект для своих HR реализовывали вдвоем с бэкенд-разработчиком Morizo: она решала, как строить, и писала код вместе с агентом. Оказалось, что архитектором может быть и не специалист по фронтенду, если он в теме. Мы дорабатывали HR-аналитику в корпоративном портале на Laravel Nova, который давным-давно построили до нас, и мы пришли в готовую систему. Для нас это был первый опыт работы с агентом в таком формате, и там было много всего...

Читать далее

WordPress не умрёт: ИИ-агенты, вайб-кодинг, Laravel, фриланс и будущее сайтов после прихода нейросетей

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

WordPress уже много лет пытаются «похоронить». Сначала казалось, что его вытеснят конструкторы сайтов, затем современные JavaScript-фреймворки, headless-подход и облачные платформы. Теперь к этому добавились нейросети, которые умеют не только писать код, но и работать с проектом целиком: запускать WP-CLI, подключать плагины, готовить тесты и помогать с деплоем.

Так что происходит с WordPress в 2026 году? Есть ли смысл новому разработчику изучать его с нуля? Как ИИ-агенты и вайб-кодинг меняют привычную работу с сайтами? Где заканчиваются возможности WordPress и начинается Laravel? Насколько еще актуальны Elementor, Gutenberg, ACF и WooCommerce? И что вообще останется разработчику, если все больше задач можно поставить обычной фразой?

Я, Александр, автор телеграм-канала «Shulepov Code», поговорил с Александром Сокиркой — разработчиком, который пришел во фриланс еще школьником, начинал с баннера за пять долларов, затем работал с Joomla и WordPress, продавал шаблоны на маркетплейсах, сотрудничал с американскими студиями и сейчас активно экспериментирует с вайб-кодингом и ИИ-инструментами. У Александра также есть YouTube-канал: «Быть Программистом», где он публикует материалы о разработке и своем опыте.

Разговор получился не только про WordPress. Мы обсудили Laravel, Copilot, Claude, Codex и Qwen, рынок фриланса и зависимость от платформ, Elementor и Gutenberg, ACF и таксономии, Docker и CI/CD, WooCommerce, выгорание и то, как меняется сама роль разработчика. Отдельно поговорили о том, что сегодня действительно имеет смысл учить, где ИИ уже экономит часы работы, а где без понимания архитектуры, кода и логики проекта по-прежнему не обойтись.

Читать далее

Октябрь ещё не закончился: 50 бесплатных уроков от падающего Spring Boot до мультиагентных систем

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

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

Выбрать урок

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

Накопление истории в Zeebe: причины замедления и влияние на память

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

Привет, Хабр! На связи команда разработки кредитных продуктов для физлиц Т-Банка. Продолжаем серию статей о нашем опыте работы с Zeebe — workflow-движком, лежащим в основе Camunda 8. В прошлой части затронули архитектуру, отказоустойчивость, масштабируемость и асинхронную обработку.

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

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

Читать далее

Своя диктовка для macOS на Deepgram: горячая клавиша, прогретое соединение и три грабли PyObjC

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

Я диктую по полторы-три минуты подряд: мысль для поста, письмо, правка к задаче. Готовые приложения для голосового ввода на маке я перепробовал, но для длинных кусков они не годились, и в итоге я за пару вечеров собрал свою диктовку на Python. Зажимаешь правый Command, говоришь, отпускаешь, и текст вставляется туда, где стоит курсор. Распознаёт Deepgram.

Статья про то, как это устроено, и про три места, где я потерял больше всего времени. Все три связаны с тем, что обычный Python-скрипт и приложение, которое macOS запускает сама при входе в систему, ведут себя по-разному. Код ниже взят из рабочего файла, лишнее я выкинул.

Читать далее

Как работает российская экосистема ИИ‑разработки для корпораций Digital Q: подробный разбор

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

7 октября мы провели онлайн-презентацию новой, AI-driven версии экосистемы Digital Q. Мы впервые публично показали полную схему конвейера ИИ-агентов, разобрали контур за контуром и продемонстрировали, как он проводит реальную задачу от встречи с заказчиком до подписанного релиза. А теперь обо всем подробнее.

Читать далее

Как Cloudflare отодвинул закупку железа на 8 месяцев: сэмплирование, агрегации и zstd в конвейере данных

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

Команда Data в Cloudflare рассказывает, как держит под контролем конвейер данных, через который идёт около двух миллиардов событий в секунду, пока трафик растёт экспоненциально, а железо линейно. Пять шагов за пять лет: разбор монолитной схемы (−35–40% трафика), замена LZ4 на zstd (−40% сжатого трафика), поздняя репликация вместо двойной записи (−36 ГБ/с), двойное сэмплирование (−25 ГБ/с, 2 ПБ в сутки) и агрегации по всему конвейеру (−80% на HTTP-наборе). С графиками и цифрами по каждому шагу.

Читать дальше →

Дизассемблер для arm64, x86-64, i386, WebAssembly, .NET и Java — в одном HTML-файле

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

Всем уже надоели клоны (их есть у меня) и спекуляция на чужом имени — хочется увидеть что-то по-настоящему новое и полезное.

Встречайте дизассемблер для ARM64, 32-битного ARM, x86-64, i386, WebAssembly, .NET (CIL) и байт-кода Java: файлы Mach-O, ELF, PE, APK и IPA из macOS, iOS, Linux, Android и Windows. Один HTML-файл, работает без сети, ничего не отправляет — скачиваете на дискету, и этот инструмент с вами навсегда. Всё уместилось в 1,22 МБ.

Читать далее

Сломанный Ctrl+C — сначала гасла VM, а потом не прерывался sleep: Java, KVM и Linux

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

Обычный Ctrl+C оказался для моей Java VM неожиданной проблемой: сначала он завершал саму виртуальную машину, а после исправления перестал останавливать команды внутри Linux. Чтобы разобраться, пришлось пройти весь путь от host terminal через UART и KVM до гостевого TTY и Unix-сигналов. В статье разберём не только причину, но и метод диагностики, который пригодится далеко за пределами виртуализации.

Разбираемся, куда пропал Ctrl+C

От Bash к Go: как «просто бэкап 1С» превратился в отдельную утилиту

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

В программировании на Go я пока новичок. Поэтому, как любой уважающий себя разработчик, я решил начать с самого безопасного занятия — переписать на Go то, что уже несколько лет нормально работает на Bash.

В этой статье расскажу, как из обычного Bash‑скрипта получилась кроссплатформенная Go‑утилита для резервного копирования информационных баз 1С.

Читать далее
1
23 ...