gpt4 book ai didi

api - 修复库代码中的错误,还是放弃它们?

转载 作者:行者123 更新时间:2023-12-04 01:03:16 27 4
gpt4 key购买 nike

假设我在代码库中有一个函数,其中有一个错误,我在代码库中发现了一个错误:

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));
}
}

Note: The example, and the language, are hypothetical



我不能保证修复此代码不会破坏某人。

可以想象,有些人依赖此代码中的错误,并且修复它可能会导致他们遇到错误(我想不出可能发生的实际方法;也许这与他们构建查找有关距离表,或者如果距离是错误的值而不是他们期望的值,他们可能只是抛出异常)

我应该创建第二个函数:
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 )永远丢失给一个可能没有人需要,也不想使用的遗留函数。

我应该修复错误还是放弃它们?

另见
  • 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
  • 最佳答案

    您将永远无法成功地使用您的库来满足每个现有项目。尝试这样做可能会产生一种受欢迎的可预测感,但也会导致它变得臃肿和停滞。最终,这将使其易于被更简洁的库替换。

    像任何其他项目一样,它应该经历更改和重新发布的迭代。由于您当前的大多数用户群是应该熟悉这一点的程序员,因此更改真的不应该让他们感到惊讶。只要您通过版本控制识别发布并记录之间所做的更改,他们就应该知道在进行更新时会发生什么,即使这意味着他们决定保留已有的版本。

    此外,作为一个可能的新用户,发现您的库由于公然不愿修复已知错误而拥有越来越多的遗留代码行,这告诉我该项目的可维护性和可持续性都可能很差。

    所以,老实说,我只想说修复它。

    关于api - 修复库代码中的错误,还是放弃它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3857811/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com