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