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