我有一个使用多个库和框架的应用程序,当有新的稳定版本可用时,我是否应该更新我的应用程序以使用这些框架的最新版本?
例如,从 python 2.x 迁移到 python 3.x,或从 spring 2.5 迁移到 spring 3.0,但问题非常笼统,而不是特定于语言。
如果我保持应用程序更新以使用最新的稳定框架版本,那么我将拥有新功能以备不时之需。
如果我不这样做,那么将来我可能需要进行更新,并且更新应用程序需要做很多工作。
有没有关于这方面的最佳实践?
我有一个使用多个库和框架的应用程序,当有新的稳定版本可用时,我是否应该更新我的应用程序以使用这些框架的最新版本?
例如,从 python 2.x 迁移到 python 3.x,或从 spring 2.5 迁移到 spring 3.0,但问题非常笼统,而不是特定于语言。
如果我保持应用程序更新以使用最新的稳定框架版本,那么我将拥有新功能以备不时之需。
如果我不这样做,那么将来我可能需要进行更新,并且更新应用程序需要做很多工作。
有没有关于这方面的最佳实践?
我会。这就是为什么。如果您不这样做,那么您使用的库集就会过时。在某个阶段,您必须升级一个(由于错误修复),然后由于互兼容性,您必须升级几个。一个简单的库升级因此级联。
我的方法是定期升级,但不是立即升级——只要时间允许。这样,您就可以按照您自己设定的时间表逐步推进您的图书馆。任何不兼容性都一次处理一个库,而不是在您想通过升级一个库来解决问题时处理一整套问题。
根据经验,我更喜欢对此采取非常保守的方法。
更新组件或框架随时都有风险。您可能会在框架中发现新的错误,或者由于对旧框架的假设,或者由于您可能已经采取的解决方法,您可能会在自己的代码中显示错误。
一般来说,您不应该仅仅为了它而更新到最新版本,除非您想立即利用新功能或错误修复,或者您手头有很多时间!更新框架可能意味着大量的重新测试,只是为了确保一切正常。
您应该立即更新的唯一时间是您所依赖的框架版本超出您的控制并且客户端可能会进行升级。Internet Explorer 就是一个例子——如果我有一些依赖于 v7 的功能,但 v8 已经发布并且该功能的行为发生了变化,那么我需要立即升级,因为客户端会随时升级。作为相反的例子,如果我有一个依赖于 .Net 2.0 框架的应用程序,我不应该仅仅为了它而针对 3.5 框架重新编译,因为框架的两个版本并存,所以升级(理论上)会产生我不需要介绍的问题。
你必须把东西放在秤上......
1.-你有什么优势吗
2.-它会让你受苦吗
3.-它会破坏贵公司的工作流程吗?死区时间是多少
对于我自己...我喜欢拥有最新的技术...这意味着更少的错误和更多的学习 =P
一根绳子有多长?
你的一般问题只能有一个一般的答案。答案可能是您在任何给定情况下对风险/回报比的看法。
大型 IT 部门往往不会立即推出最新的 Windows(我怀疑许多公司目前全面使用 Windows 7,而且许多公司仍在使用 XP(想想 VIsta))。他们可能不会完全跳过一段时间的发布,但 Windows IT 中的一般经验法则是等待服务包 1。
对于应用程序和框架——是的,可能会有一些很棒的新功能,但你需要它们吗?你有时间来实现它们吗?你是否接受你的新代码一开始不会没有错误?
Otoh,新版本可能会修复错误 - 看起来不错,但它们是您的用户报告的错误吗?如果没有,为什么还要麻烦(“修复在保加利亚版本的 windows 上使用 Chzeck 版本的框架时单击关闭/然后取消崩溃”)。并且随着错误修复,新版本将有新错误。
风险/回报——你的回报是什么?你能卖掉你的应用程序的新版本并赚更多的钱吗?你有什么风险?如果新版本有问题、支持时间(和成本),则会失去声誉。
你的一根绳子有多长?
这是一个非常普遍的问题。溶液可能不会如此切割和干燥。这取决于您打算如何支持您的应用程序。根据您的问题,我觉得您对这个项目有长期目标。在这种情况下,建议您升级到最新版本。
但是,如果旧版本已经很好地建立起来,例如 Python 2.x 的情况,那么在新版本出来后的一段时间内,您将继续获得支持。但不要拖延不可避免的事情。
如果我保持应用程序更新以使用最新的稳定框架版本,那么我将拥有新功能以备不时之需。
这就是过早优化的本质。
如果我不这样做,那么将来我可能需要进行更新,并且更新应用程序需要做很多工作。
与您的图书馆提供商同步执行此操作是否有任何好处?如果是这样,请与他们同步更新。否则,就像您对应用程序中的任何功能更改一样评估更改,并在有意义时进行更新。
这取决于框架/库。如果该框架很流行、得到很好的支持、有很好的文档并且非常稳定(例如 Spring),我肯定会升级 - 你会在现有功能和一些新功能中获得各种错误修复。
不那么流行/维护良好的框架我会更加小心。
无论如何,我认为默认应该是更新 - 正如你所说,以小步骤做事更容易。当您推迟更新时,您会给自己带来麻烦:在某些时候您将不得不更新,但差距会如此之大,以至于几乎不可能进行更新。您将遇到不再受支持的版本。