我们的代码库中有一些外部API多年来一直被弃用,没有明确的路径来确定何时/何时删除它们。您如何建议我们去除它们?我们是否可以将已弃用的API(例如> 2年或3个版本)恢复到足够长的时间才能删除它们?或者我们应该首先清楚地传达每个API的删除策略,并开始将它们删除几个版本?
任何见解?你是怎么处理的?
澄清:我们在弃用的界面上一直有不推荐的注释,问题是当这些界面可能不再存在时,我们从未明确表达过。
答案 0 :(得分:1)
当我们弃用API时,我们会向用户宣布弃用,并保留已弃用的API以用于其他两个版本。但为了确保每个人都知道API已被弃用(语言为C),我们在标题中放置#error This module is deprecated since ...
,使API公开。
保持该状态,直到您最终决定删除API。
答案 1 :(得分:1)
我想说这主要取决于谁使用你的API。如果用户使用的API无法控制,则需要更加小心地进行更改。如果它在内部严格使用,那么它主要是QA问题 - 你怎么能确定还没有什么东西可以称之为旧函数?
我在一些(非常小的)项目中采用的一般方法是调整我们的调用者不再使用旧的API,然后记录不再支持旧的API函数(可能只有一个源代码)评论,取决于你的情况)。然后在测试新API的完整测试/发布周期之后,我们将完全删除旧函数,然后运行另一个完整的测试/发布周期,以确保我们不会错过旧API的任何隐藏调用者。 / p>
根据确切的API,您可以在旧函数中放置一些调试代码,以便在有人仍在使用(或错误地开始使用)旧API时找到证据。
答案 2 :(得分:0)
在某些编程语言/环境中,您可以将函数修饰为已弃用,或者至少在调用时插入编译器警告/消息。这是提醒(窃听?)用户停止使用这些功能的好策略。