是时候看点评论做点结论了。当我们开始写这个系列博客的时候,我们就知道JavaScript/web应用框架不是那么容易总结的。我们试图回答这个无法回答的问题:我应该使用什么框架?在本文中,我们将对本系列中提到的每个框架进行总结,包括我们认为的强项和弱项。.此外,我们还为您提供了一些值得深思的地方。我需要使用框架吗?如果我们不尝试回答这个问题,那将是我们的疏忽,并且它越来越成为社会中某些人的口头禅,并且关于Web平台的争论越来越多,似乎更容易创建Web应用程序。就像本系列中的所有内容一样,我们的答案主要基于它们。虽然无框也同样有效,但是这是有代价的。那些提倡无框架手写Javascript的人,那些我们通常认为的斯德哥尔摩综合症(情绪依赖,容易被别人感动)的人,忘记了web平台上有多套快速发展的API,至少三种不同的技术,三种不同的语法。Web平台已经标准化并确定了12,000多个API,浏览器中的维恩图确实显示了这些巨大的差距。如果你是一个技术深厚,经验丰富的人,老老实实可以不用框架。但是你团队的其他人呢?你手下的人呢?或者当你的决定让自己陷入困境时?在这种情况下,我们将看到一个不使用框架的团队继续冒险,最后他们可能会发现自己创建了一个需要自己维护的框架。那么就会有找人才的问题。他们不需要知道框架是如何工作的,他们只需要寻找可以调用网络平台API的高水平技能人才或者一些自称有经验的人才,但最后发现他们缺乏技术深度和团队发展。经验。团队应该避免错误对等的陷阱。很明显,在网络技术应用方面具有创新精神的公司正在提高其市场价值和竞争力。谷歌、Facebook和Netflix就是很好的例子。但大多数公司不是这样的,他们应该承认这一点。Angular2+有哪些优势?Angular2+的最大优势是它的受欢迎程度。其他人认为它的名字与谷歌密切相关,会影响团队对它的使用。Angular1的迅速流行是因为那些来自其他交互式应用程序开发环境的人会发现类似的模型-视图模式来开发单页Web应用程序。通过对Angular1进行现代化改造并重新设计框架的某些部分,Angular2+真正爆发了,大量正式和非正式的培训机构令人印象深刻,开发人员具有强大的市场竞争力。对于用户来说,它有一套丰富的用于构建用户界面的组件,这是本系列中为数不多的可以做到这一点的框架之一。有哪些弱点和挑战?我们觉得Angular框架专注于在单页应用程序中创建用户界面并没有解决构建完整Web应用程序的更大问题,如果不及早解决,这将导致整个项目难以维护,在实际项目中,它令人难以置信的是,运行时提供了不属于核心框架的技术,这大大降低了TypeScript对最终开发人员的价值。未来何去何从?Angular5刚刚发布,看来Angular已经成功地证实了快速发布版本的承诺。在Google的持续支持下,Angular会越来越成熟。与许多大型组织一样,Google具有多重(分裂)个性,从表面上看,Angular团队与专注于浏览器标准的团队之间似乎关系融洽。但我们的观点是,Harmony只是一层薄薄的窗户纸。Angular团队没有针对Web组件和渐进式Web应用程序的真正解决方案。我们认为,业界普遍认可的标准将逐步在Angular框架中落地,这将影响如何更好地构建Angular应用,成为中长期风险。什么时候选择Angular2+如果需要获取大型框架中的技术资源,框架中的技术通常很容易移植;或者你需要在框架中培养开发人员,同时也有一定的信心让他们能够在短期内获得一定的开发能力,所以可以考虑Angular2+。需要注意的是,Angular1(angular.js)与Angular2+是完全不同的,其中的应用、技术和经验不能直接移植到Angular2+的开发中。如果你的web应用可以很好的转换成标准的model-view模式,那么你也可以忽略其他,直接考虑使用Angular2+。如果您对Google的MaterialUX设计模式感到满意,那么MaterialAngular是一种遵循该模式的快速、简单且可靠的方式。React+Redux有什么优势?React和Redux最大的优点就是比较简单,重点突出。做一件事并把它做好是非常困难的,但是两个图书馆都有效地完成了他们的目标。虽然状态容器方法对某些人来说可能是外部的,但大多数开发人员可以轻松掌握概念并理解单向数据架构的好处,从而简化范围广泛的用户界面应用程序。有哪些弱点和挑战?React和Redux最大的弱点不是它们是什么,而是它们不是什么。要构建一个功能丰富的Web应用程序,您需要许多功能,一旦您脱离了React和Redux以及其他一些库的核心,您会发现一个非常分散的社区,其中有无数的解决方案和模式,这些解决方案和模式不容易组合在一起。因此,尽管React和Redux都是非常专注的库,但对于没有经验的团队来说,很容易产生无法维护的解决方案,而没有意识到他们所做的选择会导致性能不佳或错误。即使是经验丰富的开发人员也可能意识到松散的架构或约定可能会在未来困扰他们。错误地省钱是在欺骗自己,在整个组织范围内采用React和Redux将很容易地减少低效率。在没有其他库和模式的广泛约定和标准化的情况下,标准化React+Redux比使用我们正在采用的JavaScript编写应用程序要高效得多。未来在哪里?Facebook和React最近摆脱了繁琐的附加专利纠纷,认识到与其他项目一样,更广泛的社区可以发出自己的声音。我认为这有助于Facebook意识到他们还不了解我们,并信任我们来领导该项目。希望这将继续贯穿项目的特征和技术方向。很难预测React和Redux的未来。然而,集中库确实显着提高了适应性,而且大多数React+Redux模式都促进了一种解耦架构,可以轻松进行重构和迭代。两年前,每个人都喜欢React+Flux,但整个社区很快就拥抱了Redux。思维或范式的其他重大转变可能很容易被采纳。这种关键能力很可能会持续到未来。什么时候选择React+Redux?如果您很少需要动手指导并且正在寻找更好的库而不是综合框架,那么React+Redux可能是正确的选择。在此过程中,您不仅需要诚实地了解您的团队和组织的能力,而且在您的初始开发过程中,以及整个应用程序的长期维护过程中。Vue.js有什么优势?渐进式构建能力是vue.js最大的优势。Vue具有简洁合理的架构,易于理解和构建。Vue拥有一个由热情的人们组成的强大社区,这为vue.js增加了巨大的价值,使得为一个空白项目创建一个全面的解决方案变得容易。有哪些弱点和挑战?模型视图应用程序和状态容器类型应用程序之间的转换可能会令人困惑,即使它不包含从一种模式到另一种模式的完美转换,但感觉有希望保持两种模式之间的相关性。对于那些期望vue.js是完美解决方案的人来说,至少可以说是令人困惑的,并且可能导致难以维护不一致的应用程序。一个更大的挑战是vue.js是依赖一个人的,明明其他项目基本都是靠一个组织做后盾的,但这感觉更有收获,虽然它有强大的文档社区和很多有帮助的创新新项目,但是开发vue核心基本都落在一个人身上。我们很高兴看到vue更容易接受新兴的标准方法,但它的类似web组件的模式,而不是真正的web组件,可能是vue的收益大于损失的地方。未来将走向何方?尽管vue.js的应用范围很广,但很难预测这种势头在中期发展中会持续多久。它不是由商业机构直接支持和维护的,因此它在很大程度上取决于维护所有者的生存能力和继续维护它的愿望。它还表现出一定程度的语言适应性,并在某些模式过时和失宠的情况下继续保持自己的语言现代和最新,目前没有迹象表明vue.js架构将无法适应未来的进一步发展。什么时候选择Vue.js?如果你有一个传统的web应用程序,需要一个强大而健壮的应用程序层,那么vue.js可能是一个不错的选择,它有清晰的模式,即使对于没有经验的团队,它也可以正确或错误地使用。尽管vueUX框架没有开箱即用,但在vue.js之上有很多持续构建将使您的项目受益。Dojo2的优势是什么?Dojo2专注于带来更多构建在状态容器系统之上的动态组件的体验模式,填补了react+redux等框架的诸多空白。Dojo2也知道它不仅在自己的生态系统中发展,通过包含web组件导入导出功能实现了支持不同应用实例的需要,但它仍然提供了结构化和内在的框架价值,Dojo2的核心基础是仍然专注于提供交互性。Dojo2感觉它提供了大量重要的特性和解决方案,对于构建完整的web应用程序非常重要,而这些并不是大多数其他框架的重点。提供国际化系统和广泛可访问性的模式也是其中之一,以及主题系统和进化模式,以确保良好的代码开发不仅适用于Typescript/JavaScript,而且像CSS资源一样可管理。Dojo2专注于提供结构化且符合人体工程学的开发环境。通过使用typescript等开发模式,试图提供一种安全的保护机制来引导新手开发者。通过专注于提高框架开发效率和开发安全性,旨在使开发团队能够更快地交付更好的Web应用程序。有哪些弱点和挑战?有争议的是,通过进一步延长Dojo2的发布时间,阻碍了框架的发展。相比之下,其他项目由于自身资源的扩张,可以继续快速开发迭代,从而产生了Dojo2。在拥挤的竞争环境中。这可能是一个潜在的发展机会和挑战,我希望使用Dojo2是出于灵活性和交互性而不是其他特殊原因。未来何去何从?Dojo2将成为未来最伟大的Web框架之一,它将继续努力为构建可扩展的Web应用程序提供清晰的模式和指南。随着新标准的不断涌现,Dojo2将进一步努力在框架中实现新的标准方法,继续尝试扩展框架的开放性和交互性,创造适合更多人的解决方案。什么时候选择Dojo2?如果你想采用一个灵活的、现代的、响应式的web应用程序架构,并且你需要大量的智能默认设置,那么Dojo2将是一个不错的选择。无需拼凑搭建流水线,为您提供更高层次的命令模式,让您更专注于开发项目,确保直接为您准备好直接生产开发。另外,如果你了解typescript的优势,Dojo2会非常严格地使用typescript来管理并提供健壮的开发者开发环境。Ember有什么优势?Ember.js可能是最自以为是的主流框架,这是它最大的优势。它有创建Ember.js应用程序的正确方法,通常只有一种创建应用程序的方法。Ember.js更像是一个产品或平台,你可以去供应商那里获得长期支持和维护。Ember.js为其平台、升级工具以及强大的API升级指南和工具提供全面的版本管理。成熟,是对Ember.js的一个很好的总结。多年来,Ember.js已经证明它可以保持其框架并使其符合现代标准,而不会过早地忘记遗留浏览器。Ember.js具有清晰且合乎逻辑的架构来全面构建Web应用程序。有哪些弱点和挑战?Ember.js可能是最自以为是的主流框架,这也是它最大的弱点。虽然社区是开放的并接受投资,但要找到摆脱恶性循环的方法可能具有挑战性。拥有丰富的第三方社区也具有挑战性。由于没有开箱即用的UX组件,这很可能会给您留下第三方工具包。您可能会发现,虽然这些套件并不全面,但您需要构建或寻找其他组件。由于Ember.js无法扩展,您会发现在如何交互和管理DOM方面有不一致的小部件,并且它没有提供易于管理的界面。未来何去何从?Ember.js的主要贡献者是JavaScript语言标准委员会TC39的核心参与者。在过去的几年里,Ember.js对JavaScript发展方向的影响比任何其他框架都更为直接。我们的观点是,这将在未来继续影响和帮助推进JavaScript特性和模式。这也意味着Ember.js将继续与未来的标准保持紧密耦合。Ember.js不太可能在未来的任何时候消失,尽管他们的创新很可能通过与Ember.js紧密集成的其他项目实现,例如Glimmer,它为Ember.js应用程序提供了一个新的UI框架。该框架基于TypeScript。为什么我会选择Ember.js?如果您正在寻找框架的成熟度,Ember.js是不会出错的。此外,由于Ember.js提供的内容广为人知,并且有广泛的官方和官方认可的培训,以及严格的结构,因此寻找可以构建基于Ember.js的应用程序的人才可能比使用其他框架更容易。还可以教大型团队如何构建应用程序并确保整个团队的共同对话和理解。如果您想保持对社区的信心并批判性地思考他们平台的变化,那么Ember.js是一个很好的考虑因素。您可以花更少的时间关注当前的技术趋势,而花更多的时间来创建应用程序。Aurelia的优势是什么?Aurelia有很多关于构建Web应用程序的方法、结构和想法。编写这个框架有很多技术优势。有哪些弱点和挑战?我们估计最大的挑战是缺乏核心开发和关键材料的动力。我们觉得许多想法和概念是我们对其他框架的批判性思考,但这些愿望都没有完全实现。它看起来像是一项正在进行的工作,就像Dojo2,但它已经是一个已发布的框架。Aurelia的大部分工作都落在一个人的肩上,如果那个人的注意力或可用性发生变化,就会带来挑战。未来该何去何从?对于Aurelia来说,这是一个很大的机会。如果它能实现他的愿景,他会希望完整地保留用于构建Web应用程序的现有模板,但以更健壮和完整的方式提供它。我们不知道Aurelia是否能够充分利用这个机会。我为什么会选择Aurelia?如果您正在开发Web模型视图应用程序模块,并且您和您的团队正在尝试做得更好,那么Aurelia是一个选择。它就像一个框架,正在寻求一个更大的社区来帮助它成长和发展。最后的想法真诚地希望这一系列的帖子至少给了你一点思考的机会,你应该很容易认为没有可验证的正确决定。同时,希望你也意识到没有普遍错误的决定,你应该用一些问题和思考来武装自己,以帮助你选择一个框架。框架只是一些模式的体现,一些技术的集成,源代码帮助我们更容易地构建和维护网站应用。如果你是个人开发者,我们能提供的最好建议是花尽可能多的时间使用那些你认为适合你的框架。如果你是公司经理或要做出决定的关键领导,请记住,特性列表只是决定的一个方面,有时越多越好。挑战你自己或你的团队使用一个整体框架,但首先,列出对你和你的组织重要的东西,尤其是那些非技术性的东西。
