Предположим
я есть функция в библиотеке кода с ошибкой в этом
я нашел ошибку в библиотеке кодов:Исправлены ошибки в библиотечном коде или их случайно?
class Physics
{
public static Float CalculateDistance(float initialDistance, float initialSpeed, float acceleration, float time)
{
//d = d0 + v0t + 1/2*at^2
return initialDistance + (initialSpeed*time)+ (acceleration*Power(time, 2));
}
}
Примечание: пример, и язык, являются гипотетический
Я не могу гарантировать, что этот код не сломает.
Можно предположить, что есть люди, которые зависят от ошибки в этом коде, и это исправление может привести к возникновению ошибки (я не могу придумать практический способ, который может произойти, возможно, это имеет какое-то отношение к их построение таблицы поиска расстояний, или, может быть, они просто выбросить исключение, если расстояние
неправильного значения
не то, что они ожидают)
если я создать 2-ую функцию:
class Physics
{
public static Float CalculateDistance2(float initialDistance, float initialSpeed, float acceleration, float time) { ... }
//Deprecated - do not use. Use CalculateDistance2
public static Float CalculateDistance(float initialDistance, float initialSpeed, float acceleration, float time) { ... }
}
В языке без возможности формально обесценить код, я просто доверяю всем, чтобы перейти на CalculateDistance2
?
Это также Sucky, потому что теперь идеально имени функции (CalculateDistance
) навсегда потеряли в устаревшую функцию, которая не нуждается, наверное, никто и не хотите использовать.
Должен ли я исправить ошибки или оставить их?
Смотрите также
- How to work in untestable legacy code- in bug fixing
- Should we fix that bug?
- Should this bug be fixed?
- Working Effectively With Legacy Code
Да, да, я заклинаю это * лишен *. Я также использую строчные буквы «i» *, когда ссылаюсь на себя. –
Я не собираюсь повторять его, но я бы сказал, что это не совсем язык-агностик. Некоторые языки разработали методы решения этой проблемы, а некоторые из них имеют стандартные соглашения. Здесь у вас есть конкретный язык? Этот вопрос спросил, я все еще согласен с моим первоначальным ответом; что вы должны бросить ошибку в библиотеке и справиться с разветвлениями в потребляющих программах ... – Kendrick
Это относится к новому сайту программистов. – bmargulies