Angular、React和vu .js在不同的用例之间各有优缺陷。但是有一个辩论的三巨子谁是最好的“全能的JavaScript框架"?
在这个三部曲中,每一部都将为Angular、React和Vue中的某一部展开辩论。本文是这个三部曲的第一部,焦点落在Angular.JS上。
如果你正在为一个特定的开拓项目做出精确的框架决策,或者你的组织须要长期的计策决策来利用一个核心框架,本系列将帮助你将Angular、React和Vue.JS的相对上风结合在一起。

第一部分详细先容了Angular作为JavaScript框架的上风和局限性,以及为什么它会在企业级运用中独力发挥浸染。
什么时候,为什么Angular会是你选择的JavaScript框架Angular的角落里是K&C的前沿大师Alex Chugaev。Alex已经利用Angular和Angular.js事情了5年多,也有3年以上的TypeScript事情履历,加上很强的NestJS事情知识。
他阐明了Angular在各种用例中的优缺陷,在什么时候以及为什么选择Angular而不是React和Vue.js作为JS框架的最佳选择是故意义的。亚历克斯:
在Angular环境下评估任何JavaScript框架时要问的问题和答案当项目发起人或DevOps团队领导在决定选择哪个JavaScript框架时,有几个问题该当常常被问到:
谁是这项技能的幕后黑手?(我想确定这个框架是并且将会由一流的软件开拓专家持续地掩护)。Angular由谷歌掩护,这家科技巨子致力于将框架推广为领先的web开拓技能。
它是否可靠/稳定/在实际项目/成功案例中得到证明?(我想确定这个框架已经被其他组织成功地用于类似于我们的繁芜程度的项目)。是的,自从2010年秋日发布了最初的AngularJS之后,Angular就一贯是市场上领先的JS框架。在过去的10年里,大量的组织已经成功地利用Angular构建了他们的软件产品。这里详细先容了一些基于Angular框架的紧张产品示例——https://www.madewithangular.com/。
它会得到长期的支持吗?(我想确定随着韶光的推移框架会得到改进,我们可以顺利地进行)。谷歌对Angular有年夜志勃勃的未来操持,目前正在更加投入对该框架的支持和开拓事情,从2021年夏天开始,其前身AngularJS将退役,连续供应支持。
它是一个盛行的框架吗?有多少企业已经在利用它?它的利用轨迹是什么样的?(我想确定的是,我们正处于技能的前沿,能够雇佣到有履历的开拓职员,并乐意与之互助)。当然,Angular是当代开拓者中非常盛行的框架。事实是,它连续当选为框架的选择,一些严重的大打击,让我有信心声明,这是不会改变的任何时候,在可预见的未来。
框架背后的社区有多广泛和生动?(我希望确保有丰富的材料资源、教程、会媾和生动的社区来帮助彼此办理正在发生的问题)。Angular得益于一个大型的在线社区,作为一个开源框架,有丰富的官方和社区驱动的论坛资源来谈论Angular。最有名的开拓社区资源,如StackOverflow、GitHub和Gitter chat都有一个很大的Angular存在,并且有一个强大的博客生态系统、社交网络社区和专业团体的支持,开拓者可以在这里分享他们的知识并寻求帮助。
开拓职员利用框架的效率如何?(我想确保这个框架支持新特性的快速开拓,这样我们的上市韶光将是最佳的)。个人开拓职员和DevOps团队的开拓速率取决于许多成分,而不仅仅是框架本身的质量和项目团队的技能水平。一个组织良好、纪律严明的团队可以快速有效地事情,纵然它没有从精彩的框架技能中获益。
另一方面,如果一个团队很喜好拥有极具天赋的Angular专家,那么他们可能会事情得很慢,并且在每个sprint中产生的代价也会更少。但是如果一个项目的操持和交付管理水平是精确的,那么Angular就可以把大问题分解成小问题,支持一个快速的发布周期,至少可以和React或vue.js所许可的一样。
在项目的特定背景下,框架是最佳选择吗?(我想确信它可以被有效地用于创建我们的办理方案)。为了有效地回答这个问题,我们首先要定义Angular最适宜的用例:
项目类型项目的繁芜性项目的规模项目支持韶光项目类型
Angular是一个通用框架,可以用来创建web、桌面和移动运用程序。项目的繁芜性
只要个别用例得当,Angular可以用于任何繁芜级别的项目的快速开拓。但是我认为Angular的上风在于更大的规模和更繁芜的项目。该框架供应了精良的模块化企业架构,以及大型团队在一个大型繁芜产品上高效协作的必要约定。项目的规模
关于“在我们选择Angular之前,一个项目该当有多大?”这个问题仍旧存在辩论。我个人认为这个问题本身是缺点的,我们唯一该当问的是“我们能在这种项目中有效地利用Angular吗?”Angular的上风那么Angular excel作为一个JavaScript框架在哪里呢?
可重用性类似的组件是自给自足的,开拓职员可以跨运用程序的不同部分重用它们。这在企业范围的运用程序中尤其有效,在这些运用程序中,不同的系统汇聚在一起,但可以包含许多类似的元素,如搜索框、日期选择器、过滤器等。
可读性组件还可以加速新开拓职员的入职过程,帮助他们更随意马虎地阅读代码,这意味着他们可以更快地达到生产效率的峰值。
单元测试友好组件的独立、封装(自给自足)特性简化了通过评估运用程序不同部分性能的单元测试来实行的质量担保过程。
可掩护性组件之间可以很随意马虎地解耦,这也意味着改进和掩护很方便。对付大型、繁芜的运用程序所依赖的迭代开拓事情流来说,这是一个真正的上风。
TypeScriptAngular是用TypeScript编写的,TypeScript是JavaScript的超集。在完备编译成JS的同时,TypeScript使识别和肃清在实际键入代码时发生的常见缺点变得随意马虎得多。这对付小型项目来说不太主要,但是干净的代码对企业级运用程序的性能有很大的影响。
纯JavaScript可以代替TypeScript,以是Angular开拓者不须要完备学习后者,但是它可以增强他们在更大、更繁芜的运用开拓环境中的技能,这要归功于TypeScript卓越的导航、自动完成和重构做事。
RxJSRxJS库与Angular一起用于管理异步数据调用。RxJS意味着事宜可以独立并行地处理,就像工厂的装置线一样,生产过程被分解为互不关联的可互换阶段。这意味着在等待某个事宜发生触发后续事宜时,web页面不会处于无相应状态。
异步编程在RxJS中并没有涌现,但是这个库确实使它变得随意马虎得多。RxJS的缺陷是它有一个陡峭的学习曲线,但是一旦节制了它,Angular开拓职员的事情就会随意马虎得多。
网页开拓-前端Angular最常见的运用是前端web开拓。在它的自然栖息地,框架的上风是最明显的。我个人曾在各种规模的web开拓项目中利用过Angular,从5页的运用到大型跨国公司(Bosch)的企业门户。
结合事情过程的专业组织和利用一定程度的自动化(CI/CD),我们能够在短韶光内产生大量的代价。
Angular基于组件的架构是对AngularJS的重大改进。Angular组件是存在于严格层次构造中的用户界面或功能的部分。Angular基于组件的架构的好处是:
交互式运用程序须要强调的是,Angular最适宜交互式运用程序。如果用于web开拓项目,比如大略的博客、新闻和以内容为中央的项目,那么它就没有太大意义,由于在这些项目中,用户除了消费内容之外险些不做其他事情。
虽然设置做事器端渲染等步骤意味着JS网站现在可以排名在谷歌没有重大问题,但它的动态性子意味着JavaScript不是最佳seo友好。但这是针对一样平常的JS和JS框架,而不是针对Angular。
对付大多数其他面向用户的web开拓,特殊是所谓的“胖/可靠客户端”运用,这些运用有很多业务逻辑在前端运用而不是在做事器端,Angular很可能是一个不错的选择。
移动开拓Angular可以与NativeScript(或类似的办理方案)一起利用,来构建高性能的移动运用程序。这意味着,一个Angular frontend开拓者的技能可以被运用到本地移动运用的创建上,只要有一定的平台API。
对付中小型企业来说,这意味着雇佣Angular开拓职员非常故意义,由于同一个团队既可以开拓web开拓项目,也可以开拓移动运用。
桌面开拓当涉及到桌面开拓时,Angular在。net Core、WPF等方面面临着更强的竞争,它们在构建运行在其机器资源上更高效的运用时表现得更出色。
只管在资源效率方面存在一些毛病,但一些桌面运用程序是利用像Angular这样的网络技能构建的,特殊是当这些资源已经可以方便地为组织所用的时候。
Angular的弱点我是Angular的支持者,但是,当然,只有客不雅观地在它的弱点的背景下支持框架的上风才是可能的。那么Angular的问题是什么呢?
繁芜性喜好React、vue .JS或其他JS框架的前端开拓职员最常批评它的相对繁芜性和冗长性。自从十年前AngularJS首次发布以来,这一贯是框架的一个缺陷。
我个人的不雅观点是“没有痛楚,就没有收成”,但是Angular确实很繁芜。框架的基于组件的架构是其最大的优点之一,但是管理这些分层组件的办法可以更大略。须要为一个Angular组件创建多达五个文件,注入依赖关系并声明组件生命周期接口。
这意味着在Angular开拓过程中,很多韶光都花在了重复的任务上。
陡峭的学习曲线对前面关于Angular繁芜性的不雅观点进行了扩展,框架的难度级别意味着JavaScript开拓职员学习利用框架常日要花费更多的韶光,而不是像React或vue.js那样快速地利用。
新的Angular开拓者须要韶光来熟习模块、依赖注入、组件管理、做事和模板。而那是在他们开始节制RxJS之前,RxJS从基本到中级水平,对付利用Angular来说并不是必需的。
虽然仅仅靠JavaScript是可能的,但要想成为一个真正有效的Angular开拓者,TypeScript也须要学习。就像我在先容Angular的优点时提到的那样,这样做在改进代码的清洁度和可掩护性方面有很大的好处,但毫无疑问,也会给Angular的学习曲线增加一个台阶。
Angular的弱点紧张与学习框架的过程有关,而不是由一个闇练的Angular开拓职员实现的技能能力。然而,对付那些不总是能够雇佣或引进现成的Angular开拓职员的组织来说,框架的学习曲线和繁芜性绝对是须要考虑的。
对付企业级运用,Angular是我选择的框架就我个人而言,我险些总是会选择Angular作为企业级运用的框架,它的紧张功能不是做事内容。
在须要大量投资的长期项目中,Angular的繁芜性和陡峭的学习曲线可以通过更高效的TypeScript代码掩护来填补。谷歌的支持手段的稳定性、持续的技能支持和持续的改进对付企业级运用程序来说也是一个巨大的上风。
React和vue.js在培训、招募和支配方面可能更随意马虎、更便宜,但这两种框架都不像Angular那样多用场、可掩护和经得起未来磨练。
本文:http://jiagoushi.pro/node/1277
(此处已添加圈子卡片,请到今日头条客户端查看)