文章


反应和角

由伊莫金Crispe
最后更新2016年6月24日

angular-vs-react-debate-turing-school

随着编华体会体育ap华体会体育app下载苹果p官方下载程训练营逐渐向以javascript为主的课程发展,像反应、Angular和Ember是凶猛的。但是这些技术到底是什么,它们被用于什么类型的项目?我们采访了图灵的学校的前端工程项目总监Steve Kinney向我们介绍了这些JavaScript技术的历史、它们在哪里被使用,以及如果你想成为一名一流的JavaScript开发人员,你应该首先学习哪些技术。

RubyJavaScript

编程训练营的课程从Ruby on 华体会体育ap华体会体育app下载苹果p官方下载Rails到JavaScript发生了很大的转变。这是为什么呢?

如果你看看web的现状,就会发现有许多不同的后端服务器端工程语言。某些公司使用Python;其他人则使用PHP或Ruby on Rails。阿特伍德定律说,任何能用JavaScript写的东西,最终都会用JavaScript写。浏览器在客户端的好处和坏处是JavaScript是唯一的选择。对于一种只用了10天的语言来说,它已经非常成功了。JavaScript是一种非常通用的语言。您可以用一种语言构建从web应用程序到移动应用程序到桌面应用程序的任何东西。

JavaScript:概述

JavaScript的历史是什么?它和Java有关吗?

1995年5月,Netscape员工Brendan Eich在10天内构思并构建了JavaScript,作为一种辅助语言,与Java一起做非常轻量级的事情。

有趣的是,JavaScript并不是为类似Java而构建的。它的灵感来自于两种不相关的语言Self和Scheme。网景公司的营销部门告诉Eich,他们想把这种语言命名为JavaScript。当Eich说它与Java无关时,他们实际上是说:“让它看起来像Java。”这就是为什么语法是受到Java和C的启发,但实际上它与这些语言本身没有关系。

javascript-vs-java-cartoon

那么JavaScript在1995年是否像现在一样流行呢?

最初,JavaScript只在浏览器中用于对页面内容进行非常小的更改,但随着时间的推移,它开始扮演更重要的角色。Ajax是一个巨大的补充,因为它意味着开发人员可以在页面已经加载之后发出请求从服务器获取更多信息。这种从服务器获取更多资源的能力为JavaScript打开了许多大门。它形成了web应用vs网页的概念,像谷歌地图和Gmail这样的web应用开始成形。

到2010年,JavaScript发展迅速,很有趣,但仍然只能在浏览器中使用。2010年,一个名叫Ryan Dahl的开发者想要创造一种完全非阻塞的服务器端语言。他基本上从Chrome中提取了谷歌的引擎,并构建了一个JavaScript的服务器端实现- Node JS。它很快就流行起来了。

从2010年开始,我们看到JavaScript随着编写服务器端JavaScript和客户端JavaScript的能力越来越受欢迎。在这一点上,它是唯一存在于浏览器两端的语言。

什么是Angular和React?

这是JavaScript的伟大历史!那么,为什么我们听到了这么多关于Angular和React的消息呢?这些是JavaScript框架吗?

有一个关于Angular和React到底是不是框架的问题。它们通常包含在流行的JavaScript框架列表中,但React自己非常坚定地认为它不是一个框架。这当然取决于你如何提问。

Angular是由谷歌开发的;React来自Facebook。两者都是为了解决公司内部的问题而开发的。我相信Angular起源于谷歌反馈应用。在尝试管理谷歌反馈时,一位工程师说:“我可以在两周内构建一个更好的方法来做这件事。”

Facebook知道,当用户滚动屏幕时,每低于每秒60帧,应用就会变慢,失去用户。由于Facebook的主要平台依赖广告,我认为React从一开始就专注于快速更新。

从概念上讲,这是有道理的。你能给我们举一个你使用React的例子吗?

React更像是一个用于快速呈现用户界面和管理所有可能更改的内容的小库。在编程中,改变东西是最难的事情。

例如在Facebook上,你在“通知”和“好友请求”中都有好友请求。如果用户在一个地方接受了一个朋友,那么从技术上来说,应用程序应该不允许你在其他地方再次点击按钮。React是一个处理应用状态的库确保它能快速呈现并对页面做出所有这些改变。

React没有提供任何其他东西,比如如何从服务器上提取东西。使用React时,你可以插入一大堆不同的东西。它非常轻便,非常简单,非常快速,非常小,但它是整个应用程序的一部分。

像Angular和Ember这样的框架为开发人员提供了使用web应用所需的一切。

你能给我们举个例子,说明你会用Angular做什么吗?

如果你需要从服务器获取数据,需要大量交互并保存到数据库中,那么你就需要这种特性。如果你看看Apple Music,它现在是Ember的一个应用程序,它有很多健壮的东西,它需要跟踪像播放列表这样的东西。一般来说,你可以用React或Angular构建相同的应用。这取决于你是否想要构建自己的工具链,还是想要获得一个团队所支持的一整套工具。

反应和角

在图灵学校,老师会告诉学生什么时候使用特定的语言/框架吗?

React非常小巧好用,因为你可以选择你需要的部件。另一方面,您现在需要权衡所有这些决定。你需要希望每一个独立的部分都得到维护,否则你需要把它换成另一个部分。

这都是关于在构建应用程序时要做的权衡。对于你应该选择React还是Angular,并没有一个正确的答案。

在图灵的模块1和2中,有正确和错误的答案。一旦你达到了专业水平,我认为软件工程和数据输入的区别就在于没有正确的答案。到了第四单元,学生们必须批判性地思考问题,并权衡这些问题的利弊。

我们听到有人说React是“杀死Angular!”你认为Angular有哪些缺点,可以为React腾出空间?

作为第一个大型框架,Angular确实受益良多。当你没有竞争对手时,你可以垄断市场。从那时起,灰烬和反应已经出现了一块馅饼,以及。是不是说其中一个要死了?我不知道,但这确实说明房间里不止一个人。

导致Angular发展缓慢的一个重要因素是从Angular 1到Angular 2的过渡。我认为烬和React在永久向后兼容方面都做得很好。在Ember中,您可以在一两天内将1.0中构建的应用程序转换为2.0。

Angular 2是Angular 1的完全重写,目前仍处于测试阶段。所以开发人员会做出决定,“我是在知道很快就要学习Angular 2的情况下学习Angular 1,还是只学习React或Ember?”

如果有人现在要在学习之间做出选择要么反应或Angular,他们应该选择哪一个呢?

这是我最主观的回答,但我可能会选择React。由于框架更小,学习曲线也更短。在Angular和Ember这样有更多内容的框架中,你需要提前支付更多的费用来学习所有这些东西。也就是说,一旦你学会了,他们就会为你做很多工作。

你可以在一两周内学习React的基本知识。如果你是初学者,这是一个很好的开始,这样你就可以根据你的需要把每一道菜都带上,而不是同时吃17道菜的自助餐。hth华体会体育app苹果

你最喜欢哪一个?

我喜欢React,但我也喜欢Ember。如果我必须在一个大型框架之间做出选择,我实际上会选择Ember。我在自己的个人项目中做了很多轻量级的东西,React是更好的选择。

React非常像一个图书馆,它并没有给出很多关于最佳方法的强烈意见。Ember和Angular确实有更强的观点,我认为这些观点也会影响你如何构建React应用。

使用React和Angular

作为一名讲师,你在图灵学院前端工程项目中花了多少时间在这些框架上?

第3和第4模块的很大一部分是针对Angular和React的。7个月计划的好处之一是,我们可以专注于确保所有这些框架下的基本概念是坚如磐石的。然后我们可以花很多时间在他们上面。

是否存在开发人员同时使用Angular和React的情况?

可能不会。Angular用来处理UI的渲染。Angular将自己与你正在编写的HTML紧密地捆绑在一起,而React则采用了另一种方法。我不会说没有这种情况,但我肯定想不出来,如果没有一个真正可靠的用例,我会建议不要这样做。

如果我想使用JavaScript构建一个移动应用程序呢?使用React和Angular进行跨平台开发的比较如何?

Angular有一个名为Ionic的移动框架,用于构建移动应用。React Native很酷,因为你不是在浏览器中创建网页应用;它可以编译成iOS或Android应用程序。

一般来说,选择一种语言总是看哪一种是最快的。当所有主要的浏览器供应商都在为提高性能而相互竞争时,JavaScript的速度真的很快。我认为框架现在就在这场战争中。React一开始是作为一个快速的框架,但理论上,烬会变得更快,然后一个新的更快的React版本将会出现。

就手机开发而言,React拥有一些巨大的优势,即它非常非常快。作为消费者,我们从这些超级快的电脑转向资源更有限的移动设备,所以我认为React的性能重点对他们来说是一个很好的选择。React的另一个特点是它是一个更小的框架,这意味着下载更少。如果你考虑移动连接,下载整个应用程序的速度也非常重要。

现在,Angular 2是相当大的,但他们最优先考虑的事情之一是将文件大小降低到一个与react竞争的小文件大小。

开发人员和用户都能得到最好的工具,因为存在竞争——最终的赢家是前端开发人员。其中一些答案可能在一个月后就会出错,这很好。

是否有特定的后端技术可以更好地使用反应或角或两者?

只要您构建了一个“RESTful”API,并且您的API是有意义的,这其实并不重要。我个人在Node和Ruby on Rails中构建了api,我仍然更喜欢在Rails中编写api。这是同样的权衡;Rails为您提供了诸如验证以确保错误数据没有进入数据库、在测试之间回滚数据库等功能。你可以把这些东西放在一个更轻的系统里,但我不喜欢那样做。

我喜欢在Rails中构建api,但它就像一个黑盒子。只要它有开发人员需要的api,这并不重要。Twitter最初是一个Ruby on Rails应用程序,但随着它的用户越来越多,一切都必须定制。当你达到Twitter或Facebook的尺寸时,就没有现成的东西了。他们能够将它从Ruby on Rails切换到他们自己的自定义东西,API从未改变。只要API不改变,这并不重要。

Angular vs React II

好了,总结一下我们的对话,在什么情况下Angular是最好的选择?

如果你只是想开始做一些事情,不想自己组装所有的东西,并且想要一套相对完善的工具,我认为Angular是最好的选择。

React也面临同样的问题;你想什么时候使用React?

如果你正在开发一个更小、更轻量级的应用,你不需要Angular中的所有这些工具。您不希望支付性能成本或下载成本。或者如果你有一组非常特别的优先级,React是你的选择!

进一步的阅读

了解更多并阅读图灵学校评审在课程hth华体会体育app苹果报告。检查图灵的学校丹佛的网站。

关于作者

伊莫金是一名作家和内容制作人,喜欢写科技和教育方面的文章。她的背景是新闻,为报纸和新闻网站撰稿。她在英国、迪拜和新西兰长大,现在住在纽约的布鲁克林。

不知道你在找什么?

我们将匹配你!

相关的帖子


指南


咨询职业教练

没有技术背景的我能从事网络安全工作吗?

招生聚光灯


如何为炼金术做准备

关于炼金术师的录取,你需要知道什么!

课程关注的焦点


在DigitalCrafts学习数据分析

了解DigitalCrafts如何帮助新兵在数据分析领域启动职业生涯!