Jam*_* M. 5 api agile deprecated
我正在将一个开源Java库转换为C#,它有许多标记为已弃用的方法和类.这个项目是一个以干净的方式开始的机会,所以我打算完全删除它们.然而,作为大型项目的新手,我很紧张,情况会再次出现.由于敏捷开发的大部分内容都围绕着使某些东西现在正常工作并在以后需要时进行重构,因此API的弃用似乎必然是一个常见的问题.即使我不完全确定项目的未来发展方向,我是否可以采取预防措施来避免/尽量减少API弃用?
Mat*_*lls 15
我不确定你能做多少.需求发生变化,如果您必须确保API的客户端不会被更新的API版本破坏,那么您将依赖于简单地弃用代码,直到您认为没有人使用已弃用的代码.
在代码上放置[Obsolete]属性会导致编译器在有对过时方法的任何引用时创建警告.这样,API的客户端,如果他们勤于修复他们的编译器警告,可以逐步转移到新方法,而不会破坏新版本.
如果您使用带有字符串的ObsoleteAttribute的覆盖它很有用:
[Obsolete("Foo is deprecated. Use Bar instead for munging widgets.")]
Run Code Online (Sandbox Code Playgroud)
<轻浮>
也许你可以创建一个TimeBombAttribute:
[TimeBomb(new DateTime(2010,1,1), "Foo will blow up! Better use Bar, or else."]
Run Code Online (Sandbox Code Playgroud)
在您的代码中,反映具有timebomb属性的方法,如果在指定日期之后调用它们,则抛出KaboomException.这将确保在2010年1月1日之后没有人使用过时的方法,您可以很好地清理您的API.:)
</轻浮>
| 归档时间: |
|
| 查看次数: |
580 次 |
| 最近记录: |