Обновить
256K+
742,82
Рейтинг
192 049
Подписчики
Сначала показывать

Как отменять задачи в asyncio без зависаний и незавершённой очистки

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

Отмена задачи кажется простой, пока сервис не зависает при остановке, таймаут не оставляет запрос работать в фоне, а CancelledError исчезает внутри обработчика исключений. Разберём, как устроена кооперативная отмена в asyncio, где ставить точки ожидания и как использовать TaskGroup, timeout и shield, чтобы задачи завершались предсказуемо.

Изучить asyncio

Playwright не спасает от флапающих тестов: разбираемся, как он ждёт на самом деле

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

Локально тесты проходят стабильно, а в CI начинают падать в случайных местах — знакомая картина даже для проектов на Playwright.

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

Читать далее

Один поток, а всё успевает: как работает цикл событий в JavaScript

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

Promise, setTimeout и async/await часто работают совсем не в том порядке, которого ждёшь по коду, а тяжёлая синхронная функция способна заморозить весь интерфейс. Разберём модель цикла событий, которая объясняет эти эффекты и помогает понимать, где возникают блокировки, гонки запросов и лишние задержки.

Читать далее

Ленивая загрузка — не лекарство: почему ваш main.js всё равно весит 2 МБ

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

Вы разбили Angular‑приложение на ленивые модули, включили production‑сборку и всё равно получили main.js весом почти 2 МБ. Причина часто скрывается в общих модулях, тяжёлых зависимостях и импортах, которые мешают tree‑shaking.

В статье разберём, как найти лишний код в бандле и действительно сократить время загрузки приложения.

Читать далее

Как выстроить доверенный TLS в Kubernetes без InsecureSkipVerify

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

Трафик внутри Kubernetes может быть зашифрован и при этом оставаться уязвимым: сервисы принимают самоподписанные сертификаты, а API-сервер не проверяет подлинность kubelet. В этой статье разберём рабочую схему с внутренним CA, cert-manager, trust-manager и контроллером одобрения CSR, которая позволяет убрать небезопасные исключения и выстроить единую цепочку доверия для рабочих нагрузок и управляющей плоскости.

Защитить Kubernetes-кластер

Когда TIME_WAIT становится врагом

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

Ошибка Cannot assign requested address, внезапные обрывы соединений и растущее число сокетов в TIME_WAIT часто выглядят как странности Linux, пока сервис не начинает терять доступность под нагрузкой.

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

Читать далее

Ошибки не должны быть безмолвными: Sentry, Firebase Crashlytics и Datadog в одном Flutter‑приложении

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

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

В статье разберём, как связать Firebase Crashlytics, Sentry и Datadog во Flutter‑приложении, чтобы собирать ошибки с контекстом, быстрее находить причины сбоев и видеть проблемы с производительностью до того, как они станут массовыми.

Читать далее

ML‑пайплайн как конечный автомат: от данных до аудита решений

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

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

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

Разобрать пайплайн

Как разобраться в Kubernetes, сетях, CI/CD и безопасности инфраструктуры

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

Когда инфраструктура начинает сбоить, причина редко остаётся в одном слое: за проблемой с деплоем тянутся пайплайны, контейнеры и секреты, а за деградацией сервиса – логи, сеть, база данных или настройки Linux. В этом дайджесте собрали практические материалы по K8s, CI/CD, DevSecOps, наблюдаемости, PostgreSQL и отказоустойчивости – для тех, кто хочет быстрее находить слабые места и лучше понимать, как связаны компоненты современной инфраструктуры.

Смотреть подборку

Hypothesis: тесты, которые сами ищут контрпримеры к вашему коду

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

Обычные тесты находят только ожидаемые ошибки. В статье разберём, как Hypothesis сам ищет контрпримеры и сокращает их до минимального сбоя.

Читать далее

Как загрузить любой шрифт Google Fonts на дисплей ESP32 — без Processing и ручной конвертации

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

Встроенных шрифтов TFT_eSPI хватает ровно до того момента, когда интерфейс ESP32 хочется сделать аккуратнее обычного тестового стенда. В статье автор показывает браузерный генератор для Google Fonts и собственных TTF, а заодно объясняет, как устроен формат VLW и что важно учесть при работе со сглаживанием, LittleFS, переносами строк и размером файла.

Настроить шрифты

Построение нормальной системы эскалаций

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

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

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

Читать далее

Вчера в отчёте было 12 480, сегодня 12 517: пять причин, по которым цифры за прошлый месяц продолжают меняться

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

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

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

Читать далее

Structured outputs, которые не работают: пять ситуаций, где схема есть, а гарантий нет

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

Strict‑режим включён, схема валидна, ответ успешно парсится — а в проде всё равно всплывают None, пропавшие ограничения и аргументы инструментов не тех типов.

В статье разберём пять ситуаций, где Structured Outputs создают ложное ощущение надёжности, и посмотрим, какие проверки действительно стоит добавить в LLM‑пайплайн.

Читать далее

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

Testcontainers в CI: почему тесты зелёные локально и красные на пайплайне

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

Локально Testcontainers запускается за секунды, тесты стабильно зелёные, а в CI тот же набор начинает падать в трёх запусках из ста и каждый раз по новой причине.

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

Читать далее

Как тестируют баги, которые невозможно воспроизвести

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

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

В статье разберём, как deterministic simulation testing помогает управлять временем, сетью и отказами, воспроизводить сложные сценарии по seed и проверять системные инварианты на примерах FoundationDB и TigerBeetle.

Читать далее

Кто платит за ИИ-продуктивность: почему выгорают middle-инженеры

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

В современной разработке AI-ассистенты для кодинга создали кризис, о котором никто не говорит. Junior-инженеры работают быстрее, чем когда-либо. Senior-инженеры проектируют архитектуру с меньшими усилиями. А что происходит с вашими middle-инженерами?

Они тихо тонут: большую часть времени вылавливают ошибки AI, которые не попадают ни на один дашборд.

Я называю это проблемой «невидимого валидатора». Опираясь на опыт создания AI-платформ, которые обслуживали более 100 миллионов пользователей на enterprise-масштабе, в этой статье я разберу, как ваши лучшие инженеры субсидируют продуктивность всех остальных… и что сделать, пока они не ушли.

Разобрать проблему

4 ошибки в A/B‑тестах, из‑за которых случайный шум выглядит как эффект

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

Сплиттер работает корректно, метрика посчитана, а p‑value уверенно опустился ниже 0,05 — результат кажется готовым к раскатке. Однако ошибка в оценке дисперсии способна превратить случайное различие в статистически значимое.

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

Читать далее

Сможете ли вы найти пять ошибок в Python‑коде, который вызывает LLM

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

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

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

Читать далее

Разбор пяти ошибок в модулях Linux, которые проходят сборку и валят систему под нагрузкой

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

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

Разобрать ошибки
1
23 ...

Информация

Сайт
otus.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
OTUS