从产品角度来看,Angular/Ionic版本控制的吸引力

这篇文章是Angular Advent Calendar 2017的一篇文章。因为没能及时发布,所以我们取消了指定时间的发布,并将它作为一篇普通文章发布(给相关人员带来了很多困扰,请见谅)。


听到有人用悲观的言辞谈论非常有魅力的Angular/Ionic版本控制,因此我想从产品采用的角度重新审视版本控制。

Angular/Ionic版本化。

Angular/Ionic採用Semantic Versioning(SemVer),Angular未来版本将每6个月更新一次主要版本。由于Ionic使用ionic-angular依赖于Angular,虽然没有Angular严格,但几乎进行了相应的主要版本更新。

時期バージョン2017/09Angular 52018/03Angular 62018/09Angular 72019/03Angular 8

嗯,由于Angular 5的发布时间在11月(比原计划晚了2个月),所以并不是非常严格。但是基本上,如果想要一直跟随最新版本的话,每6个月会有一次新的API,每年可能会有一次破坏性更改的可能性很高。

版本控制的背景

这是AngularJS的反思。由于过于担心向后兼容性,无法引入前端最新技术,当初先进的AngularJS无法跟上时代的变化,例如组件化开发、利用npm进行资源共享等,逐渐过时了。

当Angular 2发布时,“这是Angular系列的吗?!”、“完全不同啊”,“无法升级?”、“好像只有ng-upgrade是个选择”等吵闹声应该还在记忆犹新吧。

为了能够持续引入新技术并追赶不断涌现的新技术,Angular团队选择了这种版本控制方式,尽管他们强调了稳定性的重要性。

参考: http://angularjs.blogspot.jp/2016/10/versioning-and-releasing-angular.html

参考网址:http://angularjs.blogspot.jp/2016/10/versioning-and-releasing-angular.html

迄今为止的版本更新所带来的好处

实际上,通过这次版本更改,我目前从中获得了以下好处。由于无法一一列举,我只介绍我能想到的一些。

升级TypeScript版本

依赖项中的TypeScript版本已从1升级到2。这一变化使得支持的语法增加了。

TypeScript 2 的现代写法
https://qiita.com/karak/items/ef69aa71c19932fa5c1b

编译尺寸缩小

根据官方公告,应用程序大小已经减少了最多60%。我们确实感受到了网站加载速度的实际加快。

参考:http://angularjs.blogspot.jp/2017/03/angular-400-now-available.html

用Angular2的Ahead-of-Time(AoT)编译加快了TechFeed的速度

懒加载

懒加载已被实现。这使得我们能够将JS文件分割,并优先下载所需的部分。同时,通过减小编译大小,根据应用规模,可以实现数秒内的加速。

tutorial_loading.png

HttpClientModule: HttpClient 模块

在Angular 2中,HttpModule是默认的,但在Angular 4.3中,增加了HttpClientModule。虽然在Angular 2发布时,除了json之外还存在其他API的使用,但最近几乎都是使用json,因此已将其设为默认。
此外,类型转换变得更加容易,还新增了一个名为Interceptor的中间件功能,可以通过它来进行Http通信的拦截。

当我从HttpModule转换为HttpClientModule后,我的实现变得非常舒适。

Angular/Ionic的版本控制从产品角度的吸引点

「安心感」一词很重要。我认为产品的技术寿命在很大程度上依赖于所采用的框架和开发者的最新技术跟进。因此,采用AngularJS的产品无法跟上步伐,如果想要改善,就必须“更换框架,重新编写全部内容”。

只要跟随最新版本的Angular/Ionic,就能确保一定程度的赶上。这不仅是比有破坏性的API更大的优势,而且能延长产品寿命。

在这种意义下,我认为对于不断插手并交付短期应用程序的情况,版本控制并没有优势。相反,升级版本时可能会引起混乱,也会导致开发人员回避。我认为这可能是指这种情况下变化迅速的说法。

然而,如果考虑到长期使用的前提,这并不适用。事实上,我采用Ionic进行开发的应用程序,即使只是升级版本而没有时间来改进它,用户也给予了“不断改善”的评价。从路由到Http通信,再到编译,综合应用最新技术进行版本升级的好处让我深刻体会到,对于长期运营的应用程序来说,这是非常有益的。

最后

如果这篇文章能帮助您放下“框架的破坏性变更是不好的”这种观念,我将非常高兴。

再见。

广告
将在 10 秒后关闭
bannerAds