从我的经验,承诺向后/向前兼容性是的镀金笼软件工程行业。我已经特别观察到这是文档文件格式和编程语言/ API的情况。客户和合作伙伴恨它,当他们现有的数据或代码中断;但是,如果你永远无法打破的兼容性,你能认真地限制你在长期运行的创新能力。

有没有对这个问题的解决方案,比老功能逐渐弃用其他?这似乎是虚拟化,在Windows 7的XP模式,是一个令人兴奋的可能性。是否有其他人呢?

此外,对于我们这些谁想要设计出作为面向未来的可能的新系统,我们可以从行业取得过去的错误中学习什么样的教训?

有帮助吗?

解决方案

通过扩展,而不是通过重写公共API创新。具有一致的通用公共接口后端功能。您可以在任何时候,只要你与他们所期望的结果提供公共API模块重写私有模块。

做你的改进后端,并留下尽可能一致的API。创建新的模块和扩展你的API的公共部分,当他们清楚地记录,如果你提供新的和更好的方式做的事情,来作为补充的老路子的老路子弃用自然会到来。

有关文件格式,始终包括版本号,并确保你有办法来支持所有版本的存在。如同的API,通过延长,而不是通过重写添加新的功能。

当你想使你的软件的整体架构根本性的变化,有新的版本,包括旧的模块 - 这将导致更大的尺寸,但较旧的数据和程序提供更好的支持。

其他提示

使用XML作为文件格式的基础上,只增加了规范DTD,请不要删除。这样你的文件应该是向后兼容早期版本,这是一个加。

下面是一个很好的例子:使用 SLF4J桥梁以允许从一个记录模块容易迁移另一个在Java中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top