Предположим, у меня есть функция в библиотеке кода с ошибкой, я нашел ошибку в библиотеке кода:
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
?
Это также отстойно, потому что теперь идеально названная функция (CalculateDistance
) навсегда потеряна для унаследованной функции, которая, вероятно, никому не нужна и не хочет ее использовать.
Должен ли я исправить ошибки или отказаться от них?