如何选择软件版本,是选择一般版本,还是LTS长期支持版本?

如何选择软件版本,是选择一般版本,还是LTS长期支持版本?我们以laravel为例。

很久以前在一个话题里面聊到的观点,很多同学在 Laravel 版本选择时候比较混淆,这里说下我的看法。

对 Laravel 框架发布周期不熟悉的同学请参阅 - Laravel 的发布路线图。

什么是 LTS
首先你需要明白 LTS 的概念。

长期支持 (英语:Long term support,缩写:LTS)是一种软件的产品生命周期政策,特别是开源软件,它增加了软件开发过程及软件版本周期的可靠度。长期支持延长了软件维护的周期;它也改变了软件更新(补丁)的类型及频率以降低风险、费用及软件部署的中断时间,同时提升了软件的可靠性。但这并不必然包含技术支持。

在长期支持周期的开始,软件设计师会将软件特性冻结:他们制作补丁来修复程序错误及计算机安全隐患,但不会加入新的,可能会造成软件破坏的功能。软件维护者可能会单独发布补丁,或是将其置于维护版本、小数点版本或是服务包中发布。支持周期结束后,其称之为产品的生命周期结束。

“长期支持” 这个术语通常是保留给特殊的软件版本,其他版本会有更短的生命周期。通常来说,长期支持版本至少会被维护两年。
From 维基百科

LTS 解决的问题
终于可以不用被框架的迭代推着走了,框架的更新换代对一个健康的生态系统来说是很必要的,我也认为程序员应该跟上技术的趋势,这对保持个人竞争力很重要。

但是作为一个庞大的商业项目的基础框架,一年一次的大版本更新真的是很痛苦的事情,当版本换代时,你会有两个选择:

更新框架为最新;
沿用老的框架。
如果你选择「1」更新,你会浪费无数个深夜进行代码迁移和测试,没有写自动化测试脚本的话更惨。

并且在这个过程中,你没有产出新东西,没有多写一行业务逻辑代码,对你自己来说这是在浪费生命,对于企业来说,这是在浪费时间、浪费金钱,最可怕的,浪费机会 —— 企业的竞争对手每天都有新功能,而你却花好几天,甚至是几周时间做系统升级。

如果你选择不更新呢,对不起,你放弃了很多能极大提高你开发效率的「扩展包」(如果你是扩展包作者,很多时候,你也不会考虑去兼容淘汰掉的版本),过不了多久,官方会宣布对你的过气的基础框架停止维护,包括安全的 FIX。

 

Laravel LTS 长期支持版的出现就是为了解决这个问题的,Laravel LTS 的支持窗口是:

两年的 Bug 修复,三年的安全更新支持。

对应一般发行版的:

提供六个月的 Bug 修复支持,一年的安全修复支持。

如何选择?
从产品生命周期上去考虑:

如果是商业项目的话,要走稳定路线,建议选择 LTS 长期支持版,可以避免掉入「更新大黑洞」。
如果是个人项目的话,要走激进路线,推荐使用最新版的 Laravel,主要有两个理由:
跟上技术的趋势,对保持个人竞争力很重要,如果你不想被时代淘汰的话;
知道新框架的技术决策,即使你在开发 5.1 的应用也是非常有帮助,例如这个 路由分割 的讨论,Laravel 5.3 里已经有非常合理的解决方案,完全可以直接采用,但是如果你不知道 5.3 ,那你估计就会发明自己的 车轮。

————————————————
原文作者:Summer
转自链接:https://learnku.com/laravel/t/2595/how-to-select-the-laravel-framework-version
版权声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接。

如何选择软件版本,是选择一般版本,还是LTS长期支持版本?