gpt4 book ai didi

api - 避免弃用代码的敏捷实践?

转载 作者:行者123 更新时间:2023-12-04 16:21:54 24 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

3年前关闭。




Improve this question




我正在将一个开源 Java 库转换为 C#,其中有许多方法和类被标记为已弃用。这个项目是一个从头开始的机会,所以我计划完全删除它们。但是,作为从事大型项目的新手,我很担心这种情况会再次出现。由于大部分敏捷开发都围绕着现在开始工作,然后在需要时进行重构,因此 API 的弃用似乎是一个常见问题。即使我不完全确定项目的 future 方向,我是否可以采取预防措施来避免/最小化 API 弃用?

最佳答案

我不确定你能做多少。需求发生变化,如果您绝对必须确保 API 的客户端不会被更新的 API 版本破坏,那么您将不得不依赖弃用代码,直到您认为没有人使用弃用代码为止。

在代码上放置 [Obsolete] 属性会导致编译器在有任何对过时方法的引用时创建警告。通过这种方式,API 的客户,如果他们努力修复编译器警告,就可以逐渐转向新方法,而不会因新版本而中断一切。

如果您使用带有字符串的 ObsoleteAttribute 的覆盖,它会很有用:

[Obsolete("Foo is deprecated. Use Bar instead for munging widgets.")]

<轻浮>

也许你可以创建一个 TimeBombAttribute:
[TimeBomb(new DateTime(2010,1,1), "Foo will blow up! Better use Bar, or else."]

在您的代码中,反射具有 timebomb 属性的方法,如果在指定日期之后调用它们,则抛出 KaboomException。这将确保在 2010 年 1 月 1 日之后没有人使用过时的方法,并且您可以很好地清理您的 API。 :)

关于api - 避免弃用代码的敏捷实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1087296/

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