Борбаг (Bohrbug)
Стабильный и предсказуемый баг. Всегда воспроизводится при одних и тех же условиях, не исчезает при попытке его исследования. Образцово-показательная ошибка.
Пример: Калькулятор выдает ошибку "Деление на ноль" ровно в 100% случаев, когда пользователь пытается разделить любое число на ноль. Ошибка легко воспроизводится и постоянно наблюдается.
Мандельбаг (Mandelbug)
Очень сложный и хаотичный баг, вызванный взаимодействием множества факторов. Его поведение кажется случайным и непредсказуемым, как фрактал. Часто проще переписать систему, чем искать причину.
Пример: Веб-приложение раз в несколько дней начинает сильно тормозить. Анализ показывает, что это происходит только при полной луне, при одновременной нагрузке от 1000 пользователей и при определенной настройке кэша в базе данных. Изменение любого из этих условий временно маскирует проблему.
Шрединбаг (Schrödinbug)
Баг, который существует в состоянии суперпозиции: код работает, пока кто-то не посмотрит на него и не поймет, что он не должен работать. Сам факт осознания ошибки заставляет программу начать падать.
Пример: Разработчик видит в коде строку: "if (x = 5) { ... }" (присваивание вместо сравнения). Он понимает, что это ошибка, и код должен был всегда падать. Но он не падал годы! Как только разработчик это осознал, программа начала стабильно падать на этой строке при каждом запуске.
Гинденбаг (Hindenbug)
Катастрофический баг, который приводит к масштабному и зрелищному краху системы, часто с побочными эффектами вроде потери данных или падения сервера.
Пример: Ошибка в скрипте развертывания, которая вместо обновления базы данных предварительно полностью ее очищает. В результате сервис "взрывается" - останавливается, теряет все пользовательские данные и требует многочасового восстановления из резервной копии.
Багсон Хиггса (Higgs-bugson)
Теоретически предсказанный, но неуловимый баг. Его существование доказано косвенными признаками (логи, отчеты пользователей), но воспроизвести его в контролируемых условиях невозможно.
Пример: Пользователи раз в месяц сообщают о странном сообщении об ошибке "Неверный формат файла", хотя загружают корректные файлы. В логах есть записи об этой ошибке, но команда разработки не может воспроизвести ее на тестовых стендах, как ни старается.
Гейзенбаг (Heisenbug)
Баг, который меняет свое поведение или исчезает, когда разработчик пытается его исследовать или отладить. Назван в честь принципа неопределенности Гейзенберга.
Пример: Программа падает в продакшене, но при запуске под отладчиком начинает работать идеально. Частая причина - ошибки в многопоточности или неинициализированная память, которая в среде отладки заполняется нулями.
Баг-Зомби (Zombiebug)
Баг, который кажется исправленным, но снова "воскресает" при определенных обстоятельствах. Обычно это происходит из-за проблем с контролем версий, кэшированием или когда исправление было неполным.
Пример: Вы исправили баг с отображением иконки в браузере Chrome. Через месяц он вернулся, потому что другой разработчик случайно откатил ваши изменения при мердже конфликтующей ветки.
Баг-Единорог (Unicornbug)
Невероятно редкий и красивый в своем коварстве баг. Возникает при стечении настолько специфических обстоятельств, что его появление кажется почти мифическим.
Пример: Мобильное приложение крашится только когда: 1) У пользователя включен арабский язык интерфейса 2) Батарея устройства разряжена на 13% 3) Приложение работает в фоне во время входящего звонка.
Баг-Хамелеон (Chameleonbug)
Баг, который маскируется под другие проблемы. Разработчики долго ищут не там, где нужно, потому что симптомы указывают на совсем другую причину.
Пример: Приложение медленно работает при загрузке больших файлов. Все ищут проблему в сетевом стеке или файловой системе, а оказывается - утечка памяти в модуле отображения прогресса.
Космический баг (Cosmic-ray bug)
Баг, вызванный однократным сбоем оборудования (например, из-за космического излучения). Невоспроизводим и обычно не требует исправления в коде.
Пример: Сервер один раз выдал некорректный результат, но после перезапуска больше проблема никогда не повторялась. В логах нет никаких аномалий.
Баг Мастдай (Must-die bug)
Особо раздражающий баг, на исправление которого руководство или продукт-менеджер выделяют неадекватно много ресурсов, хотя его влияние на продукт минимально.
Пример: Менеджер требует, чтобы вся команда бросила срочные задачи и исправила опечатку в сообщении об ошибке, которое видят 0.001% пользователей.
Баг Демона Максвелла (Maxwell's Demon bug)
Баг, который нарушает фундаментальные законы логики в вашей системе - словно невидимый демон избирательно пропускает или блокирует данные.
Пример: Система логирования показывает, что данные успешно записаны в базу, но при чтении их там нет. При этом другие данные в той же таблице читаются нормально.
Баг Понци (Ponzi bug)
Баг в архитектуре, который временно "зарабатывает технический долг", создавая иллюзию работоспособности, но в конечном счете приводит к коллапсу системы.
Пример: Кэширование результатов запросов маскирует проблемы с производительностью базы данных. Когда кэш переполняется, система внезапно перестает отвечать на запросы.
Баг-Минотавр (Minotaurbug)
Баг, который находится в самом сердце сложного лабиринта кода (часто legacy-системы). Чтобы добраться до него, нужно пройти через множество слоев абстракции.
Пример: Чтобы исправить баг в отображении цены товара, нужно пройти через:
1) фронтенд-валидацию
2) API-гейтвей
3) микросервис корзины
4) сервис цен
5) три разные таблицы в базе данных.