1

Война и мир как полигон для багфиксов

Доброго всем времени суток.


Попался вот мне на глаза такой отрывочек, с привкусом легкого баяна:

Война и мир как полигон для багфиксов

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


Итак, есть конкретная забагованая последовательность событий, приводящая к вылету.

Тут несколько ключевых позиций:

1. падение Пьера

2. самопроизвольный выстрел

3. рикошет от столба


Что вообще тут можно было бы сделать? Поехали пошагово дебажить:


В пункте 1: выдать Пьеру в инвентарь нормальные туфли по погоде. Плюсы: человеку удобно, минимальная вероятность падения, ничего вокруг не затронуто. Минусов нет


В пункте 2: исходная копипаста отмечает факт самопроизвольного выстрела, но явно был еще факт выпадения пистолета из кармана либо из-за пояса. Оба пункта немного кривые. Тут можно было бы улучшить размещение пистолета на теле (более надежная и удобная кобура, либо усовершенствовать карман, либо заставить мудака, насмотревшегося боевиков, вытащить пистолет из-за пояса и использовать наконец кобуру или карман!).

Либо еще вариант - прокачивание конструкции пистолета, фикс исключающий самопроизвольный выстрел при ударах. Это уже чуть сложнее и масштабнее, но почему бы и нет


Для пункта 3 имеем: столб вероятнее всего - часть парковой инфраструктуры, фонарь там, телеграф, мало ли. И судя по тому, что ранее на него жалоб не поступало - он установлен правильно, свое назначение выполняет, никому не мешает гулять и прочее. То есть, с вероятностью 95% это НЕ БАГ, и трогать тут ничего не нужно вообще!

Рикошет - тут уже сложнее. Вроде бы физика окружения, вроде бы даже работает, вроде бы даже корректно. Можно ли было избежать трагедии как-то? Можно, например, зарядив пистолет патронами с пулей другого типа, менее склонной к рикошетам (но НЕ ХОЛОСТЫМИ, как предлагалось в исходном отрывке, потому что в этом случае пистолет превращается в бесполезную железяку и перестает выполнять свое назначение - то есть ломаем функционал). Только нужно озаботиться этим чуть ранее по тексту - чтобы Пьер успел их найти и купить. Да и к тому же, присутствует далеко ненулевая вероятность того, что выстрел четко в столб с рикошетом прямо в Наташу был единичным случаем в расчетах физического движка, когда все просто очень удачно совпало - и при любых повторных падениях (в т.ч. на продакшене) воспроизвести его будет практически нереально. Нужно больше Пьеров, пистолетов и Наташ в тестовом окружениии, чтобы можно было бы со статистической корректностью тут что-то утверждать.


В общем, к чему я это все веду? Есть много вариантов устранить исходную проблему. Причем самыми логичными и простыми на мой взгляд являются вот эти варианты (по возрастанию сложности):

- с обувью по погоде

- надежной и удобной кобурой под пистолет

- нерикошетящими пулями


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

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


Вывод: программист в исходном тексте либо просто джун, либо лютый индус (как минимум в душе) :)



Скриншот с историей найден где-то на просторах интернета, а вот текст мой