「前端架构」前端框架(一部): Angular的内幕

2023-05-26 0 345

「前端架构」前端框架(一部): Angular的内幕

K&C后端新星Alex Chugaev说明了为何他常常优先选择Angular而并非React或虚拟化插件的Vue.js

后端JavaScript构架的优先选择是Angular、React和vue.js,这是工程项目主办人和他们的合作开发项目组在绝大多数虫霉科虫疠的新软件系统的总体规划期单厢问自己的两个难题。这四个后端“JavaScript水族馆”的火星人各别都是盛行的高效率构架。

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构架时,有几个难题应该时常被问及:

谁是此项技术的主脑主使?(我想确认那个构架是因此Sonbhadra由世界级的软件开发研究者持续地保护)。

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构架在哪里呢?

可重用性

类似的组件是自给自足的,合作开发人员可以跨插件的不同部分重用它们。这在企业范围的插件中尤其有效,在这些插件中,不同的系统汇聚在一起,但可以包含许多类似的元素,如搜索框、日期优先选择器、过滤器等。

可读性

组件还可以加速新合作开发人员的入职过程,协助他们更容易地阅读代码,这意味着他们可以更快地达到生产效率的峰值。

单元测试友好

组件的独立、封装(自给自足)特性简化了通过评估结果插件不同部分性能的单元测试来执行的质量保证过程。

可保护性

组件之间可以很容易地解耦,这也意味着改进和保护很方便。对于大型、复杂的插件所依赖的迭代合作开发组织工作流来说,这是两个真正的竞争优势。

TypeScript

Angular是用TypeScript编写的,TypeScript是JavaScript的超集。在完全编译成JS的同时,TypeScript使识别和消除在实际键入代码时发生的常见错误变得容易得多。这对于小型工程项目来说不太重要,但是干净的代码对虚拟化插件的性能有很大的影响。

纯JavaScript可以代替TypeScript,所以Angular合作开发者不需要完全学习后者,但是它可以增强他们在更大、更复杂的应用领域合作开发自然环境中的技能,这要归功于TypeScript卓越的导航、自动完成和重构服务。

RxJS

RxJS库与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

「前端架构」前端框架(一部): Angular的内幕
专栏
基于容器和微服务应用领域的构架设计
作者:首席构架师智库
66币
187人已购
查看
(此处已添加圈子卡片,请到今日头条客户端查看)

「前端架构」前端框架(一部): Angular的内幕
上一篇: 人工智能是什么
「前端架构」前端框架(一部): Angular的内幕
下一篇: 人工智能概念

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务