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

Экран перестал обновляться, и виноват оказался не ваш код

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

Экран получил первое состояние и застыл: запросы проходят, исключений нет, а в дебаге проблема вообще не воспроизводится. Разбираемся, почему StateFlow может «замолчать», как отличить особенности его семантики от реального бага и при чём здесь R8 в релизной сборке Android‑приложения.

Разобраться в StateFlow

Новости

Разворачиваем сервис через ArgoCD

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

В классическом CI/CD пайплайн заканчивается деплоем, но дальше состояние Kubernetes‑кластера может незаметно разойтись с конфигурацией в Git. Разбираемся, как ArgoCD обнаруживает и исправляет такой дрейф, как настроить синхронизацию и где автоматизация GitOps требует особенно осторожного подхода.

Разобрать практику

Как настроить параллельное согласование договоров в Битрикс24 и не получить зависший процесс

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

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

Настроить процесс

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

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

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

Проверить процессы

Компактация лога в Apache Kafka повреждала данные. Вот как мы это исправили

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

Компактация лога в Kafka может привести к ситуации, когда разные реплики одного топика начинают хранить разную версию данных — и расхождение сохраняется даже после восстановления брокера. Проблема возникает из-за гонки между компактацией и репликацией и затрагивает Kafka 3.9–4.2. Разбираемся, как воспроизвести баг и почему координированная компактация решает проблему.

Изучить решение

Тихое похищение OAuth-токенов: разбор атаки на цепочку поставок Salesloft Drift

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

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

Читать разбор

Чтобы понять Kubernetes, я написал свой Kubernetes

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

Можно годами работать с Kubernetes, писать манифесты и разбираться с падениями подов – и всё равно смутно представлять, что именно происходит внутри системы. Я решил закрыть этот пробел радикально: собрал собственный оркестратор Smith и по ходу разработки столкнулся с теми же проблемами, которые когда-то сформировали архитектуру Kubernetes.

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

Разобраться в Kubernetes

Passkey Editor: расширение для Burp Suite для пентеста WebAuthn

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

Пентест WebAuthn быстро упирается в трафик, который Burp показывает почти как непрозрачный набор байтов: нужные поля скрыты за CBOR и несколькими слоями кодирования. Passkey Editor снимает эти обёртки, позволяет менять данные прямо в запросе и собирать их обратно так, чтобы сервер продолжал обрабатывать процедуру.

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

Разобрать инструмент

Когда технический долг и legacy-системы тянут CIO вниз

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

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

Читать далее

Что же все‑таки делает COO?

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

Вот удивительный факт: согласно исследованию Harvard Business Review, проведенному в 2024 году, только в 43% компаний из списка Fortune 500 есть главный операционный директор (COO), однако те, у кого он есть, сообщают о повышении операционной эффективности на 23%. Так чем же именно занимается весь день этот загадочный руководитель высшего звена? В этой статье мы попробуем разобраться в данном вопросе.

Узнать про COO

Kafka гарантирует порядок? Разбираем 3 инцидента с Outbox

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

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

В статье разбираем три таких инцидента из одной системы на transactional outbox, PostgreSQL и Kafka 4.2. Попробуйте сами определить, где сломалось: в источнике, в relay, в продюсере или у потребителя.

Читать далее

65 бесплатных уроков октября: от LLM и Kubernetes до микросервисов, Kafka и безопасности

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

Привет, Хабр. В этом дайджесте собрали 65 бесплатных демо-уроков по основным IT-направлениям. В программе — многопоточность, микросервисы, Kubernetes, Kafka, LLM и ИИ-агенты, безопасность ИИ-систем, SQL, автоматизация тестирования, Data Quality и другие темы, с которыми сегодня сталкиваются команды в реальных проектах.

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

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

Поменяли object на Lock, и два потока встретились в критической секции

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

В .NET 9 появился новый примитив синхронизации System.Threading.Lock, и многие команды начали заменять привычные object-замки на новый тип в поисках более предсказуемого поведения и производительности. Но такая замена меняет саму механику работы lock: достаточно одного места, где экземпляр потеряет свой тип, чтобы два участка кода перестали синхронизироваться между собой.

В статье разберемся, как именно устроена новая модель блокировок в C#, где компилятор помогает заметить проблему, а где она остаётся скрытой, и стоит ли переходить на Lock ради заявленных преимуществ.

Разобраться глубже

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

range-for перестал ронять программу на временном объекте, зато теперь дольше держит мьютекс

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

range-based for в C++ выглядит безопасным местом, пока в него не попадает временный объект с внутренней ссылкой. Такой код может годами работать в продакшене, а затем начать читать освобождённую память после смены компилятора или настроек сборки. В статье разбирается, как C++23 изменил время жизни временных объектов в таких циклах, почему поддержка стандарта зависит от компилятора и какие проверки помогут найти проблемные места в кодовой базе.

Узнать детали

Почему накопительная сумма в SQL врёт

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

Оконные функции часто дают результат, который выглядит правильным: итоговая сумма сходится, запрос проходит проверку, а ошибка проявляется только спустя время. Проблема скрывается в деталях работы рамки окна — без явной настройки СУБД сама выбирает правила расчёта, из-за чего одинаковые строки могут получать неожиданные значения.

Разберём, как найти причину такого поведения в PostgreSQL, чем отличаются ROWS, RANGE и GROUPS, и какие настройки помогают получить предсказуемый результат в рабочих запросах.

Читать далее

@CacheEvict уходит раньше коммита, и кэш врёт до перезапуска

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

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

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

Разобрать кейс

Боремся за качество данных: практический подход с Airflow

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

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

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

Разобрать подход

Как надёжно передавать управление между ИИ-агентом и человеком без гонок состояний

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

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

В этой статье разберём архитектуру Agent Inbox: как с помощью конечного автомата, CAS-подобных проверок и SQLite построить предсказуемый цикл взаимодействия агента и человека.

Читать далее

Как тестировать AI-фичу, если у неё нет одного правильного ответа

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

Когда у функции на базе языковой модели нет одного правильного ответа, привычные проверки по принципу «ожидание = фактический результат» перестают работать. Тестировщику приходится определить, какие свойства ответа действительно важны, как отделить допустимую вариативность от ошибки и построить понятный критерий pass/fail.

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

Разобрать подход

Как хаотичные подсети убивают масштабируемость

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

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

Разобраться в теме
1
23 ...