我在日常任务中使用了很多开源库(java FYI)。当一个项目接近成熟时,许多库已经发布了更新的版本。人们通常升级只是为了升级,还是等到你看到一个特定的错误?发行说明通常会说诸如“改进的性能和内存管理”之类的东西,所以我不确定是否值得潜在地破坏某些东西。但另一方面,大多数库都努力并声称在发布新版本时不会破坏任何东西。
你对此持什么立场?我承认,我有点沉迷于升级库。通常,它确实有助于提高性能并使事情变得更容易。
我在日常任务中使用了很多开源库(java FYI)。当一个项目接近成熟时,许多库已经发布了更新的版本。人们通常升级只是为了升级,还是等到你看到一个特定的错误?发行说明通常会说诸如“改进的性能和内存管理”之类的东西,所以我不确定是否值得潜在地破坏某些东西。但另一方面,大多数库都努力并声称在发布新版本时不会破坏任何东西。
你对此持什么立场?我承认,我有点沉迷于升级库。通常,它确实有助于提高性能并使事情变得更容易。
我们的规则是在集成测试之前保持最新,但一旦我们超过这一点,就不允许对任何库进行更改。当然,如果集成测试揭示了由于已修复库的问题而导致的缺陷,那么我们会返回并更新。幸运的是,我不记得发生这种情况的情况。
更新:我理解 Philuminati 关于在你有理由之前不要升级的观点。但是,我是这样想的:我不断地改进自己的代码,并使用由我认为有相同想法的人构建的库。我会不使用自己改进的代码吗?嗯,不。那么为什么我不能使用其他人改进的代码呢?
我保留有效的方法,直到有升级的理由。
如果有关旧版本的信息出现在secunia或securityfocus上...
否则 - 如果需要新功能(更好的性能也是“功能”)。
我和懒惰的人群在一起——我不记得曾经制定过与“有理由升级”不同的策略——但现在我考虑了这个问题,关于主动升级有话要说。
升级确实使您更容易报告库中的错误,如果您找到了。如果您发现了一个错误并且尚未升级,那么在您获得任何帮助或支持之前,这是您必须要做的第一件事。你不妨主动去做。
尤其是如果你有一个好的测试套件,主动升级会及早解决问题,这总是一个聪明的举动。
这在很大程度上取决于您的部署。如果您支持多个平台,那么最新的库可能在任何给定时刻都不可用。尝试安装需要某些库的最新版本的东西时,我感到很沮丧,而且它还不能作为一个包提供。
如果您部署给客户,您希望针对稳定且广泛可用的库进行开发。