Представьте себе следующий сценарий:
Вы обнаружили, что ваша (или чья-либо) программа имеет ошибку - функция выдает неправильный результат при заданном вводе. Вы проверяете код и не можете найти ничего неправильного: кажется, что он запутался при вводе данных.
Теперь вы можете сделать одно из двух: либо изучить код, пока не найдете истинную причину; или вы бьете по повязке, добавляя if
инструкцию, проверяющую, является ли ввод этим конкретным вводом - если это так, верните ожидаемое значение.
Для меня наложение повязки было бы совершенно неприемлемо. Если код ведет себя неожиданно на этом входе, на какой другой вход, который вы пропустили, будет странно реагировать? Это просто не похоже на решение проблемы - вы просто переложите проблему под ковер.
Поскольку я бы даже не подумал об этом, я удивлен тем, как часто профессора и книги продолжают напоминать нам о том, что применение «повязок» не является хорошей идеей. Так что это заставляет меня задуматься: насколько распространены такие «исправления»?