Описание
Количество уроков: 16 Видео
Язык: Русский
Вес архива: 529 МБ
Иногда кажется, что «плавающие» ошибки живут своей жизнью: сегодня есть, завтра нет, причины не видно. Но в реальности они не мистические — просто недолокализованные.
Почему плавающие баги — это не магия, а недостающие данные
«Плавающие» ошибки возникают там, где состояние системы меняется быстрее, чем мы успеваем его проанализировать. Ваше главное оружие — методичность, внимательность к деталям и умение сузить область поиска.
Техники воспроизведения ошибки
Как повысить шанс корректного воспроизведения
• Анализ логов — первое место, куда стоит смотреть. Добавьте уточнение: проверяем не только логи сервера, но и ошибки клиентской части, сетевые запросы, состояние кэша.
• Проверка граничных условий — расширяем идею: значения «-1», «0», пустые списки, максимальные лимиты, необычные форматы данных.
• Метод «от обратного» — усиливаем объяснение. Например: «Представьте, что баг уже случился — какие состояния системы к этому могли привести?»
• Таблица отличий — вносим рекомендацию фиксировать различия не только в окружении, но и в последовательности действий.
Что добавлять в таблицу отличий
• Текущее состояние объекта или данных.
• Последовательность и точные шаги пользователя.
• Тип устройства, ОС и браузер.
• Версия релиза или сборки.
• Интерфейс, через который воспроизводится — интерфейс GUI, API или другие каналы.
• Количество активных вкладок или открытых сессий.
Техники локализации ошибки
Что делать, если баг воспроизводится, но причина не ясна
• Анализ кода — рекомендуем начинать с мест с наибольшей изменчивостью: асинхронность, конкурентный доступ, обработчики событий.
• Бисекционное деление — логично оформляем как структурированный алгоритм: уменьшаем количество шагов до минимума, пока не получим ядро проблемы.
• Формирование гипотезы — добавляем совет фиксировать гипотезы письменно, чтобы не терять цепочку проверки.
• Оптимизация сценария воспроизведения — предлагаем удалять нерелевантные шаги и проверять, влияет ли каждый шаг на результат.
Практическая структура курса
• Минимум теории — большое количество практических кейсов.
• Небольшие лаконичные лекции по 7–15 минут.
• Сложные темы разобраны более подробно — лекции до 30 минут.
• Каждое занятие раскрывает конкретную технику: логирование, анализ окружения, работа с кодом, поиск проблем в интеграциях и миграциях.
Техники черного и белого ящика
Когда нет доступа к коду
Черный ящик — добавляем идеи: моделирование пользовательских сценариев, работа с вводами/выводами, проверка системных ограничений, сетевой анализ.
Когда доступ к коду есть
Белый ящик — делаем акцент на том, что даже базовые навыки чтения кода дают сильное преимущество. Используем приложение folks как учебный пример, подчеркиваем приближенность к реальным кейсам.

Дмитрий Соколов –
Ожидал магии, а получил методичность — и это лучший результат. Автор объясняет, почему плавающие дефекты кажутся невоспроизводимыми и как сужать область поиска. Пригодились граничные условия и рекомендация начинать анализ кода с мест с конкурентным доступом и обработчиками событий. За 4 часа получил рабочую схему действий.
Алексей Р. –
В целом полезно, особенно про бисекционное деление и анализ логов с клиентской стороны — раньше смотрел только серверные. Метод «от обратного» на практике действительно иногда срабатывает. Хотелось бы больше живых примеров с асинхронными гонками, там поверхностно.
Марина В. –
Взяла курс, когда столкнулась с багом, который у меня на локалке не воспроизводился вообще. Помогла таблица отличий и разбор того, что фиксировать: версия сборки, ОС, количество открытых сессий. Формат короткий, но по делу, всё разложено по шагам.