2010-03-18 27 views
4

我有一个应用程序使用多个库和框架,我应该更新我的应用程序使用这些框架的最新版本,当一个新的稳定版本可用?当使用框架发布新版本时,我应该更新应用程序吗?

例如,从python 2.x迁移到python 3.x,或从spring 2.5迁移到spring 3.0,但问题非常普遍,而不是语言特定的。

如果我保持应用程序更新为使用最新的稳定框架版本,那么我将在需要时提供新功能。

如果我不这样做,那么可能在将来我需要做更新,并且更新应用程序将需要很多工作。

有没有关于这方面的最佳做法?

+0

“有没有关于这方面的最佳做法?”换句话说,我们如何在自己的情况下处理这个问题。 – 2010-03-18 23:43:50

回答

5

我会的。这是为什么。如果你不这样做,那么你使用的一组库会变得过时。在某个阶段,您必须升级一个(由于错误修复),此时由于兼容性问题,您必须升级几个。简单的库升级因此级联。

我的方法是定期升级,但不是立即 - 只要时间允许。这样,你可以将你的图书馆逐步向前移动,,你自己设定的时间刻度为。任何不兼容性都是一次处理一个库,而不是在您想通过升级一个库来解决问题时必须处理一整套问题。

+1

+1。但是从商业角度来看,变更和停机时间的规模也需要考虑。我很希望我们在2年前升级了:( – Perpetualcoder 2010-03-18 23:40:44

+2

+1提到了级联效应。 – 2010-03-18 23:48:33

+0

我得到你的建议,但我不确定它在哪里实用。释放周期,合规性等必须考虑进去另外,升级一个库可能恰好有你所讨论的级联效果,那么你是否还原并等待? – GrayWizardx 2010-03-18 23:52:04

1

你必须把东西放在秤.....

1 - 你得到任何好处

2,将它让你受苦

3,将它突破贵公司的工作流程;很多死区时间怎么会

为自己...我喜欢有最新的技术......这意味着更少的错误和更多的学习= P

0

这是一个非常普遍的问题。解决方案可能不会被切割和干燥。这取决于你打算如何支持你的应用程序。根据你的问题,我觉得你有这个项目的长期目标。在那种情况下,那么你最好建议升级到最新版本。但是,如果老版本已经很好地建立了,就像Python 2.x的情况一样,在新版本发布之后,您将会继续获得支持。但不要拖延不可避免的。

-1

它取决于框架/库。如果框架非常流行,支持良好,文档齐全且非常稳定(比如Spring),我肯定会升级 - 您可以在现有功能中获得所有错误修复的一些新功能。

不那么受欢迎/维护得好的框架我会更仔细一点。

无论如何,我认为默认值应该是更新 - 正如您所说,以小步骤操作更容易。当你推迟更新时,你正在为自己创造一个头痛的问题:在某些时候,你将不得不更新,但是这个差距会非常巨大,更新几乎是不可能的。您会遇到不再受支持的版本。

+1

Python 3.x不能向下兼容2.x !!!你从哪里得到这个想法? – 2010-03-18 23:49:41

0

如果我继续更新 使用应用程序的最新的稳定框架 版本的话,我将在情况下提供的新功能 我需要他们。

这是过早优化的本质。

如果我不这样做,那么可能会在将来的我 需要做的更新,这将 是大量的工作来更新 应用。

您是否与您的图书馆服务提供商一起获得任何利益?如果是这样,请与他们一起更新。否则,就像您在应用程序中更改任何功能并在适当时进行更新一样评估更改。

2

根据经验,我宁愿采取非常保守的方法来解决这个问题。

更新组件或框架在任何时候都有风险。您可能会在框架中发现新的错误,或者您可能会在自己的代码中显示错误,原因是对旧框架的假设,或者由于您可能已经实施的解决方法。

一般情况下,您不应该为了它而更新到最新版本,除非您想立即利用新功能或缺陷修复程序,或者您可能只需要很多时间!更新框架可能意味着很多重新测试,只是为了确保一切正常。

您应该立即更新的唯一时间是您所依赖的框架版本超出了您的控制范围,并且客户端可能会进行升级。一个例子是Internet Explorer - 如果我有一些依赖于v7的功能,但是v8已经发布并且该功能的行为已经改变,那么我需要立即升级,因为客户端随时都会升级。作为一个相反的例子,如果我有一个依赖.Net 2.0框架的应用程序,我不应该仅仅为了它而重新编译3.5框架,因为框架的两个版本并肩生活,所以升级(理论上)可能会产生我不需要介绍的问题。

0

多长时间是一段字符串?

您的一般问题只能有一个普遍的答案。答案可能是您在任何特定情况下对风险/回报率的感受。大型IT部门倾向于不立即推出最新的Windows(我怀疑目前很多公司都在使用Windows 7,许多stil使用XP(想想VIsta))。他们可能并不完全跳过一段时间的发布,但在Windows IT的一般经验法则是等待Service Pack 1.

对于应用程序&框架 - 是的,可能有一些很棒的新功能,但是你需要它们吗? ?你有没有时间来实现它们,并且你是否同意你的新代码一开始就不是无bug的?

Otoh,新版本可能会有错误修复 - 看起来不错,但它们是你的用户报告的错误吗?如果没有,为什么要麻烦(“在保加利亚语版本的窗口上使用Chzeck框架版本时,修复单击关闭/然后取消崩溃”)。随着错误的修复,新版本将出现新的错误。

风险/回报 - 你的回报是什么?你可以卖你的应用程序的新版本,赚更多的钱?你有什么风险?如果新版本有缺陷,支持时间(和成本),则会丧失声誉。

你特定的一段弦是多久?

相关问题