代码之家  ›  专栏  ›  技术社区  ›  Jon Hopkins

何时升级到语言或框架的新版本?

  •  3
  • Jon Hopkins  · 技术社区  · 16 年前

    当框架或语言的新版本出现时(例如.NET 3.5,SQL2008),人们在采用/升级时采用什么方法?

    一般来说,开发人员会尽快说(他们希望在他们的简历上,从管理的角度给他们想要的东西提供激励),但商业上通常很少有激励(很少有客户需要最新版本),从成本的角度(重新测试,培训)往往有抑制作用。

    我特别想的是“正在进行”的系统和项目(如软件公司),这些系统和项目在过去的几年中存在并发展,而采用“新项目使用新技术”的方法是行不通的。

    人们是否受特定需求(使用新功能的需求、潜在客户或现有客户要求对其提供支持)的驱动,他们是否正式评估它(在这种情况下,标准是什么),还是按照常规进行升级(在这种情况下,是前沿还是前沿)?

    人们是否认为不使用最新版本的东西应该被视为技术债务并以此进行管理?

    或者“如果它没有坏掉,就不要修复它”是一个有效的方法?

    7 回复  |  直到 7 年前
        1
  •  5
  •   Community CDub    8 年前

    读起来 Technical Debt . 这是一个简单的成本效益决策。

    “如果没有破产,就不要修复它”是一项共同的管理政策,它说“明天的美元不如今天的美元值钱,所以不要为将来的改进做计划。”最终,技术债务积累到了产品不再一瘸一拐的地步。

    最常见的断点是当基础结构的某个部分不再受支持时。到那时,增量变化是不可能的。

    从零开始再投资是一种新的资本投资。修复现有代码是一项开支。会计迫使管理层在技术上做出疯狂的决定。

    对于开源软件,由于Oracle/Sun没有正式的“支持日落”声明,因此需要谨慎的技术管理。当然,技术管理不善会导致技术破产。

        2
  •  2
  •   Pontus Gagge    16 年前

    我们看看 支持生命周期成本 . 旧版本支持多长时间,成本是多少?像Windows和Java这样的平台与大型机环境相比,移动速度很快,在这些平台上做生意的部分成本是执行周期性升级。在一个理性的世界里,就是这样!

    新版本可以有我们需要的杀手级功能——但在企业开发中这是罕见的。新版本的主要积极卖点(与过期支持等消极卖点相反)往往是 提高开发效率 很难测量。与此相反,正如您所指出的,必须考虑重新培训的成本,不仅对于最初的开发人员,而且,至关重要的是,对于维护。在每次升级中,有些应用程序往往因为太关键而无法淘汰,而且升级成本太高/太脆弱。随着时间的推移, 对于平台和版本,您必须支持增加总体技术债务(无论其年龄)。

    升级到新版本(请注意)的另一个标准是 吸引和留住员工 . 在目前的经济阶段,这是在玩第二把小提琴,但仍然不能完全忽视。您希望至少有一个充满热情和知识渊博的开发人员。

        3
  •  2
  •   JonoW    16 年前

    我认为最关键的问题是,如果你不升级平台/语言版本,你的应用程序是否能长期生存下去。如果你认为不行,你最好早点升级,而不是迟点升级,因为升级只会变得更难。

    想想你的应用程序应该被积极开发多久,直到你需要一个完整的重写。如果你不打算重写它,我会不断升级。考虑一下,如果您使用的是过时的技术,那么找到最好的开发人员将变得多么困难。考虑一下新的框架/语言特性如何在短期内长期加速您的开发过程。

        4
  •  2
  •   smok1    16 年前

    当你真的需要的时候。.NET 1.0很糟糕,1.1是一个很好的升级,但是使用VS2003进行Web开发并不是那么顺利。随着VS2005和.NET 2.0“的改进,我看到仍然有许多开发人员和公司坚持使用.NET 2.0。以前的版本是如此新鲜,版本2.0是成熟的技术。所以,如果你对1.1满意,为什么要升级?如果你现在对2.0满意,为什么要升级到3.5或4.0?

        5
  •  1
  •   pauljwilliams    16 年前

    当升级的好处(更多的特性,或者你需要的错误修复)大于所涉及的风险/成本(新问题,破坏现有代码)时。

        6
  •  1
  •   Mugunth    16 年前

    当您为基于Microsoft的平台开发时,例如Windows窗体的Windows应用程序或Windows Server的ASP.NET Web应用程序,迁移的最佳时间是每两个主要版本的操作系统。例如,如果您的应用程序是为Windows 2000开发的,则应迁移到Vista,但可以忽略xp。同样,如果它是为xp sp2设计的,您可以安全地忽略vista和target win 7。通常微软从不中断(或很少中断)增量操作系统更新。所以在今天的操作系统上运行的应用程序肯定会在下一个操作系统上运行。但决不在后面的那个。(如果运行,M美元怎么能赚钱???)

    来源:自我…5年以上的Windows开发人员)

        7
  •  1
  •   learnjourney    7 年前

    我正在尽可能快地升级阵营(尽管我可能在新版本发布后等待一个月,以防出现未捕获的问题)。您需要考虑以下几点:

    1。安全性发布

    很多人告诉我,如果它没有坏掉的话,他们也会在安全补丁发布后闭上双眼。想平等。

    对我来说,至少在安全支持的框架版本上是一种道德责任。我们有责任保护客户的数据。

    2。吸引和留住人才

    有很多人都在谈论使用的编程语言或框架是如何无关紧要的。但根据我的经验,最干净的Web应用程序代码和设计通常是由那些对所使用的框架和编程语言充满热情的人编写的,因为他们在这方面的经验和专业知识。

    如果你坚持一个非常老的版本,这些人不太可能在你的公司呆太久或者加入你的公司。请想想你的开发者的幸福。

    三。新版本提供的更新、简单的方法

    一个框架的更新版本常常使过去的困难变得容易得多。如果我们不升级,我们会错过好的新软件包/功能,并且我们会以旧的令人沮丧的方式编写代码,因为我们知道有一种更简单的方法来实现相同的功能。到了升级的时候,我们可能不得不再次改变新的方式。那么,为什么不升级和使用新的更好的方式,减少浪费时间呢?