Angular1 和 Angular2 权衡

目前公司已经有的项目是用angularjs 1写的,虽然项目还不算大型,但是比较重要。听说angular1angular2差别很远,而且新版优点很多,解决了不少老版的痛点(虽然我也不知道哪些),所以问题来了,angular2看起来这么优秀,我们是要考虑转过去呢?还是维持原来的风格,持续用angular1开发我们的项目?

PS: 有个很重要的背景: 为了提高开发的效率和代码的复用,我们已经封装了一个baseui代码库,这里面有我们常用的功能代码,而且这些代码也已经被很多项目所共用,所以如果我们想要用angular2,就必须要顺带修改baseui代码库的内容,然而你们懂的。。其他项目可能就会杯具了。。

所以我们现在觉得很纠结,希望有类似处境的兄弟能指点下或者分享下你们的经验,

阅读 6.7k
12 个回答

看项目,
如果是旧项目不建议去用angular2,
因为angular2语法上来说跟angular1可以说是重写,基本上都换样了。
angular2又是以typescript语法来作为核心语言,相当于你在打算使用angular2的同时除了要学习angular2的语法,还要学习typescript的语法。这些多多少少还是要花费一些时间的。
当然,并不是说因为这个东西跟旧的相差太大就不去学,这个要结合你现在的所处环境。如果说你们的项目或者说新项目给的完成时间不是很充足的话,那建议还是继续使用angular1,
angular2虽然不管是在设计上还是性能上相较于angular1有很大的提升,但适合自己的才是最好的。
如果你们公司对一个全新新项目进度上不是很紧凑的话,让你们有一些时间去学习跟理解angular2的语法跟ypescript的语法,那还是可以使用angular2的。虽然你们的代码库非常大,但也是人写出来的,你们可以慢慢的去重构重写,没有说一定要一下子就完成,积少成多,至少我不信你们之前的代码库是一日而成的。

从公司的角度来说 转变是代价非常高的 重写吃力可能背锅 没有有魄力的负责人估计很难转了 虽然新项目可以用

从个人的角度来说 公司不用你也要学 不然就落后时代了

如果你公司的这个项目已经是个成熟的项目,个人推荐不需要改成angular2了。但是同时可以尝试用angular2开发一个alpha版本,不要直接把angular1转成angular2,而且现在已经angular4了。我们公司做的是金融的产品,angular1之前开发的时候(当时还没有angular2),就能体会到angular1的缺点,scope和他内部的dirty check真的很重。我们现在用了很多virtual scroll的开发,不然一个1万多个选择的下拉框加上ng-repeat直接跑奔溃了。angular2的优势应该算是处理的速度上快那么几倍,如果不是很大型的数据,不用有大的区别。我个人觉得angular1优化好了,配上jQuery,清除些不必要的dom,依旧还是很不错的,而且我想你们也习惯了angular1的开发方式。

不是说放弃,angular1这些以后也注定会被淘汰。可以重新尝试开发,没有必要直接对项目进行升级。

如果你的angular1代码组织得比较好,按道理来说,转过去需要花费的时间并不是特别多。

既然你学的vue,甚至用vue重构都是可以的,只不过前期会花费多一点时间。但是从学习成本,维护成本,以及个人发展这些长远角度来看的话,重构肯定是利大于弊的。

楼主公司的情况和我们公司的情况差不多,我分享一下个人观点:

首先从重构代码这件事本身说起

  • 对于重构这件事情,如果是个人项目那随意,如果是公司项目的话,尤其是旧的中大型项目,最后不要轻易重构

  • 重构虽然做好肯定是利于长远发展的,但本身也具有一定的风险,这个需要有胆识的负责人来进行评估

  • 重构需要的时间成本非常昂贵,考虑是否有足够的时间去做这件事情

再从ng1迁移到ng2的角度说下

  • 因为ng2相对ng1基本是两个不同的框架,抛去框架本身的学习成本外,还有ts、observable等东西需要学习

  • 需要重新摸索新的工程化解决方案

再从我个人的角度说下

  • 我认为很多核心的问题并不是换框架之后,就可以利用它带来的优点完美解决,这个需要权衡

  • 作为工程师,我觉的如果能在应用层解决的问题,就不要放到技术层来解决吧

我觉得你业余时间可以自己用2重写baseui。旧的baseui就不要去改动了。以后开新项目就可以考虑用2了,毕竟你已经用2重写baseui 了。但我个人觉得1比2好写啊,2感觉不温不火,相关配套也不多。

让我选,我选择ng1。什么性能,什么脏检查都是不重要的,用ng1的项目,基本都是老项目,新项目还用ng1说明这个项目组是不思进取,ng1弊端很多,其他人也说过了。
如果全新项目,我绝对选ng2甚至直接上ng4。

题外话:你有时间去吃ng2/4,还不如选vue或者react。

既然是旧的项目,除非是架构已经满足不了需求,不然不建议使用新的框架重构,一个是新框架的学习和摸索需要时间,另一个是所得到的收益不见得成正比。

如果有必要、可以把baseui代码库复制一份出来、单独给那些基于代码库的旧版本用、

然后你们再对另一份代码库进行修改、

既不会影响旧代码库和之前基于它的系统、也解决了被它拖累无法用新东西的问题 |^_^|

浪费时间 浪费精力

就像楼上说的业务才是第一 越快越简单越效率越好

为了生存下去的吃饭还需要用到刀叉么

多花点时间想想有什么新点子 提高用户留存率 体验性 网站的观赏性 艺术性什么的 比你换框架玩来玩去 原地踏步 好个1000000000倍

现在前端都这么浮躁,业务不是第一吗,性能快多少?
重构了所谓对个人好处又有什么好处,现在框架多的不行,不老老实实把以前的东西打好扎实。
什么重构什么的你先想好你有没有能力为公司盈利背锅。

我的建议是用vue重构

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题