网易首页 > 网易号 > 正文 申请入驻

Node.js与Ruby on Rails:二者哪个最适合Web开发?

0
分享至

如果您希望切换到其中一个后端框架,请继续阅读,以获得每个框架的概述,以及它们如何相互堆叠。

大家好,在这篇文章中我们将比较节点。js与Ruby on Rails的web开发。我写这篇文章的主要原因是,我们的团队经常被问到哪种语言或者哪个框架最适合学习。无论如何,我们从不给出一个简单的答案,因为它们不是明确的答案。

所以我认为最好的方法就是看看所有的事实和统计数据。我们来看看这两个节点的一些优点和缺点。js和Ruby on Rails的服务器端技术。

在我们开始之前,我想做几个要点。所以我们已经可以听到批评人士说,你将如何比较节点。js是Ruby on Rails的运行时,它是一个框架?我得到了这个参数,但是我要比较的是两个服务器端技术和web堆栈。现在,让我们明确一下什么是更好的学习,什么是更好的企业实施。我并不是说要比较Ruby on Rails到Node的直接特性。js如果能让你觉得替换节点更好。类似于Express或其他基于节点的框架。总之,我们比较后端结构和堆栈,而不是单独的技术。

我们的团队使用了这两种技术,我们中的一些人都喜欢这两种技术。我不是在推广一个。同样重要的是,理解对我们有用的东西可能对你不起作用,反之亦然。另外,你应该记住每个人的大脑是不同的。对于这个问题,没有一个饼干刀具的答案。

让我们先来看看两种技术之间的一些相似之处。

受欢迎的服务器端技术。

相当容易学习。

高性能。

为顶级网站/应用程序使用。

强大的社区。

基于类似MVC的结构。

快速开发。

这两个节点。js和Rails是受人尊敬和流行的服务器端技术,可以做很多不同的事情。它们可以处理许多不同的栈和数据库等等。两者都很容易学。Node使用JavaScript和Rails使用Ruby。但是Ruby和JavaScript比Java、c#或一些高级语言更容易学习。他们都是非常宽容的语言,有大量的学习资源。节点。js和Ruby on Rails表现非常好,我们将讨论性能水平。有很多使用这两种技术的流行网站的例子。节点和Rails具有非常强大和有主见的社区。

Rails已经有了更长的时间,也有更多的旧计时器。但Node每天都在变得越来越流行。现在MVC或模型-视图-控制器是一个设计好的模式。Ruby on Rails有硬MVC。你有一个文件夹,你的模型,你的控制器,和你的视图。在诸如Express这样的节点上,MVC是可能的。然而,Express在结构上比Rails灵活得多。你可以只考虑MVC的某些方面。这并不是唯一可能的结构。节点和Rails用于快速开发和原型开发。Rails有很棒的折叠特性,Express也有生成器和命令行工具。

Rails 的优点

1.一致的结构。

2.非常坚持自我。

3.数据库迁移。

4.开发速度。

5.Ruby是一门伟大的语言。

6.Ruby gems。

7.成熟和受尊重的社区。

首先,我们来看看Ruby on Rails的优点,以及它的缺点。如前所述,Rails有一个非常强大的MVC结构。大多数Rails应用程序在核心文件和文件夹方面看起来非常相似。你有一个强大的基础,然后你用宝石、定制的包和库建立起来。此外,Rails也很固执己见,这意味着它会让你坚持自己做事的方式。Rails假设你要以某种方式写代码,有些人可能会说这有点限制。但它也使得代码更容易,更简洁,也使得创建错误和问题变得更加困难。这并不是说你不能创造你想要的东西,而是你想要到达那里的方式。如果你用正确的方法,它很可能是最简单的路径。

Rails还具有非常好的数据库迁移功能。它们允许我们在数据库中创建和编辑表格和列,而不必手动添加或更改内容。它还为您提供了一个很好的小日志或路径,您可以按照该路径查看数据库结构的具体操作。

现在节点。有一些针对迁移的包或模块,例如dba迁移,它们可以很好地工作,但是它不像Rails的移植系统那样深入和易于使用。当涉及到原型和快速开发时,没有太多的技术可以击败Rails。因此,有了一些基本配置和几个脚手架命令,您就有了一个完整功能的CRUD应用程序。数据库迁移被添加到这个速度。节点。如果使用第三方工具和模块,js和Express非常适合快速开发。但是Rails把所有这些东西都放在了盒子里。

Ruby语言有一些优点和缺点,但在很大程度上,它很受尊重,而且非常干净。Ruby是一种多范式语言,您可以执行过程代码功能,但在大多数情况下,它是面向对象的。一切都可以看作是一个对象。RubyGems是Ruby on Rails的包管理器,它被用来扩展框架的核心功能。它类似于node . js的npm。所有Rails应用程序都有一个gem文件,您可以在其中指定gem。然后您可以运行一个bundler命令来安装所有的程序,类似于npm安装node . js。

关于Ruby on Rails的另一件伟大的事情是它已经存在了一段时间,它有一个非常受人尊敬的智能社区。维护Ruby on Rails的开发人员非常聪明,对框架非常热情。在核心框架上有大量的资源,包括论坛、博客文章和文档,以帮助你摆脱困境。这些都是Ruby on Rails的一大优势。

Rails 的缺点

1.性能

2.太简单

3.声望

4.缺乏文档

让我们来谈谈它的一些缺点吧。我们听到的关于Ruby on Rails的一些最大的抱怨是相对较慢的。Rails是一个很大的框架,它的核心有很多特性。除了一些较轻的框架之外,您还在gem和应用程序文件依赖项中有这个因素。有太多的自动化和脚手架,开发人员并没有真正了解Rails框架是如何工作的。您可能了解Ruby语言,了解其应用程序的语法或结构,但对于真正了解Rails如何工作的人来说,这很好,因为它的快速开发。另一方面,一些开发人员真的需要多走一段路才能真正理解某些事情。对于大型项目来说,Rails也比小型应用程序更困难。它也会有一些问题。

另一个缺点是Rails不像node . js那样受欢迎。在这个时候,节点。js在web开发的前沿,对Rails的兴奋已经下降。在我们看来,如果你正在找工作,我们肯定会说学习节点,可能是表达。与其他语言相比,更多的公司雇佣JS开发人员。如果这是五年前的事,那么Rails或Ruby将是学习的三大语言之一。但这些日子并不那么受欢迎。因此,我在前面简单提到过,核心Rails框架有一些非常好的文档和示例,允许您学习简单的搭建命令和数据库迁移。那都是很好。然而,当你尝试学习更高级的编程时,你正在努力学习一些特定的宝石,有时感觉就像在干草堆里找一根牛顿针。

一些相当大的名字在他们的平台上使用或确实使用了Ruby on Rails。我不认为你能比推特更大。此外,由于一些伸缩性问题,他们已经将许多后端服务迁移到Scala和Java。但是他们使用Rails很长时间了,我很确定他们仍然在他们的平台的其他方面使用它,比如他们与Shopify的合作。此外,Basecamp是一个项目管理解决方案,它说Rails是他们项目的核心和灵魂。运行GitHub的软件是在Rails上构建的。Soundcloud和Hulu是一个很受欢迎的流媒体服务,它是在Rails上构建的。从一开始,Groupon和LivingSocial、SlideShare和Urban Dictionary都在开发中使用了Rails。

Node.js 的优点

1.非常受欢迎。

2.高性能。

3.异步。

4.非常可扩展。

5.JavaScript前端和后端。

6.灵活的文件结构。

7.npm和模块。

现在我们看了Rails,现在开始看node . js。我们将从优势开始。一个巨大的节点。js非常受欢迎。它基本上是web开发中的新前沿技术。市场需求非常旺盛。它非常受初创公司的欢迎。在Node和Express框架周围有一个繁荣的开源社区。在npm中有许多很好的开发模块,当涉及到速度和性能节点时,就会把Rails从水里拉出来。事实上,它几乎敲掉了水里的任何东西。它在谷歌JavaScript引擎上运行,速度很快。Node用于构建实时的web应用程序,几乎让人感觉像是桌面应用程序。

接下来,节点。js是异步的。这意味着当一个程序向服务器发送请求时,它不必等待应答。它可以继续执行。节点运行在一个线程上,而不是发送请求的其他语言。他们等待这个请求完成,然后发送下一个,以此类推。所以节点。js也非常具有可伸缩性,而且在一个线程上也有很大的作用。Node也很适合像MongoDB这样的NoSQL数据库,它比像MySQL这样的传统关系数据库更具伸缩性。几乎所有我读过的大公司都转向了Node。他们至少报告了生产率的大幅提高。

另一个重要的节点优势是它使用JavaScript,它广泛应用于许多web栈。很多时候,前端的语言与后端不同,但使用node . js时并不是这样。我们在前端和后端使用JavaScript。有大量的客户端框架主导着行业——反应,角度,vue.j。对node . js来说,这是一个巨大的优势。显然,JavaScript也可以很好地使用JSON api,这很受欢迎。

Node.js,Express或Happy.js,这些框架都有一个非常灵活的文件结构。它们允许您按照自己的意愿构建应用程序。你可以把所有的东西都塞进一个应用JS文件里。如果你想拥有更多的传统MVC结构,我认为这两者都有好的一面和坏的一面。但在大多数情况下,如果你知道你在做什么,你是一个好的程序员,那么灵活性是一件好事。和Ruby gems一样,Node也有自己的包管理器,叫做npm,或节点包管理器。npm和Ruby gems之间最大的区别在于依赖关系的管理方式。在Ruby中,依赖项是在全局环境中安装的。所以你必须使用一个bundler,你必须自己管理它们。实际上,npm为您的模块提供了所有这些功能。它们被放到节点模块文件夹中。然后,这些模块也可以有自己的节点模块文件夹,其中有它们自己的依赖项。npm模块似乎也有更好的文档,至少在我的经验中是这样。

Node.js 的缺点

1.糟透了的CPU密集型任务。

2.不一致性。

3.较新的技术。

4.回调地狱。

5.太模块化。

所以我们研究了node . js的优点和优点。现在我们来看一些缺点。对于许多CRUD风格的应用程序来说,Node很好,它对CPU密集型应用程序非常糟糕。这样做的原因是,每当它做一些事情,比如CPU操作时,它就会对所有传入的请求进行排队,因为它运行在一个线程上。像Apache这样有更多可用线程的东西,将在它们之间分配CPU时间。只有IO操作是并行的,因为它们是异步执行的。CPU密集型任务的一个例子是3d渲染、视频编码、科学建模等。

关于Node的另一个抱怨是,它可能有点不一致。有些人认为API经常会不断变化。它有时不是很向后兼容的。不仅如此,一般来说,Express应用程序的结构是非常自由和灵活的。有时它可以给开发者足够的绳子来挂自己。

Rails是非常严格的,因此很难编写糟糕的代码。因为节点是异步的,所以你要处理大量的回调函数,它们经常会冒泡,进入所谓的“回调地狱”。这里有一些解决方案,例如async实用程序和使用承诺。你可以做一些事情来阻止它。这一点并不困扰我,但我知道一些不习惯异步编程的开发人员有很多回调问题。

您可以看到这两个后端选项都有它们的优点和缺点,但它们都是出色的技术。每件事都应该逐案评估,而不是只说一个在所有情况下都比另一个好。

本文固定链接: http://www.i7758.com/archives/2863.html

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
喜讯!前法甲王牌驰援成都蓉城踢鲁能,届时将给王大雷一个下马威

喜讯!前法甲王牌驰援成都蓉城踢鲁能,届时将给王大雷一个下马威

评球论事
2024-04-25 12:22:10
张成泽秘闻:出轨金正恩前女友,15个私生子,动用39号室监视金家

张成泽秘闻:出轨金正恩前女友,15个私生子,动用39号室监视金家

古今档案
2023-12-12 11:33:46
倒闭8.4万家!无数中年男人的“庇护所”,如今为何跌下神坛?

倒闭8.4万家!无数中年男人的“庇护所”,如今为何跌下神坛?

开心体育站
2024-04-24 22:08:14
60岁女人再过夫妻生活,是怎么样的感受,几位女人说出了真心话!

60岁女人再过夫妻生活,是怎么样的感受,几位女人说出了真心话!

小阿眭说说吖
2024-04-15 15:28:32
局长儿子嚣张跋扈打断同学门牙,同学母亲亮明身份,对方下跪求饶

局长儿子嚣张跋扈打断同学门牙,同学母亲亮明身份,对方下跪求饶

真实故事汇
2023-12-19 21:59:16
【英】马丁·雅克:在对华政策上,菲律宾正成为东盟的异类

【英】马丁·雅克:在对华政策上,菲律宾正成为东盟的异类

环球网资讯
2024-04-25 06:30:09
新泽西州国会众议员因病去世 众院格局再生变动

新泽西州国会众议员因病去世 众院格局再生变动

朗威游戏说
2024-04-25 11:50:17
《城中之城》大结局:沈婧疯魔,田晓慧沦为玩物,周琳绝望逃婚

《城中之城》大结局:沈婧疯魔,田晓慧沦为玩物,周琳绝望逃婚

永不后退
2024-04-25 10:34:52
周琦被禁赛广东放水?朱芳雨给出回应,广厦放出训练照,无李金效

周琦被禁赛广东放水?朱芳雨给出回应,广厦放出训练照,无李金效

后仰大风车
2024-04-25 14:31:18
黑八来了?热火轰23记3分创纪录爆冷击败绿军,波津9中1成罪人

黑八来了?热火轰23记3分创纪录爆冷击败绿军,波津9中1成罪人

球哥侃球
2024-04-25 09:45:06
重磅!中央金融办、中央金融工委发文

重磅!中央金融办、中央金融工委发文

第一财经资讯
2024-04-25 11:47:25
上海夫妻200万买2000吨大船,在长江上往来运货,船夫生活意想不到

上海夫妻200万买2000吨大船,在长江上往来运货,船夫生活意想不到

今日搞笑分享
2024-04-25 07:35:23
俄罗斯扣押摩根大通4.4亿美元资产,以追回其被美国制裁困住的资金

俄罗斯扣押摩根大通4.4亿美元资产,以追回其被美国制裁困住的资金

我不叫阿哏
2024-04-25 15:05:25
前法国国脚勒伯夫:姆巴佩永远都达不到梅西与C罗的水平

前法国国脚勒伯夫:姆巴佩永远都达不到梅西与C罗的水平

懂球帝
2024-04-25 15:23:15
正式官宣,中国女排世联赛开球时间敲定,CCTV5直播,球迷欢呼。

正式官宣,中国女排世联赛开球时间敲定,CCTV5直播,球迷欢呼。

小豆豆赛事
2024-04-25 00:59:10
4月24日,田馥甄,官宣了!

4月24日,田馥甄,官宣了!

元气少女侃娱乐
2024-04-25 14:58:27
“生产队”时代夜晚的真实生活,只许看、不许哭!满满全是回忆!

“生产队”时代夜晚的真实生活,只许看、不许哭!满满全是回忆!

莆农阿
2024-04-24 14:49:44
4月29日晚油价调整,将迎来今年第二次下跌,油价下跌总算看到了希望

4月29日晚油价调整,将迎来今年第二次下跌,油价下跌总算看到了希望

户外小阿隋
2024-04-25 12:40:30
祸害人三年的新冠消失了,四大奇怪现象却出现了,很多人没察觉

祸害人三年的新冠消失了,四大奇怪现象却出现了,很多人没察觉

王晓爱体彩
2024-04-25 12:26:41
2025世俱杯亚洲4名额已确定3席,艾因、横滨水手将争夺最后一名额

2025世俱杯亚洲4名额已确定3席,艾因、横滨水手将争夺最后一名额

直播吧
2024-04-25 09:42:24
2024-04-25 16:10:46
爱码农
爱码农
专注前端开发,关注用户体验
82文章数 395关注度
往期回顾 全部

科技要闻

雷军:希望小米SU7能成为苹果用户购车首选

头条要闻

男子被上门女技师触摸隐私部位要求"加钟" 平台回应

头条要闻

男子被上门女技师触摸隐私部位要求"加钟" 平台回应

体育要闻

当胜利变成意外,就不要再提未来……

娱乐要闻

心疼!伊能静曝儿子曾被狗仔追到洗手间

财经要闻

先涨价再降价,特斯拉“打脸”只用20天?

汽车要闻

这灯效我能看半小时 奥迪Q6L e-tron有备而来

态度原创

游戏
本地
数码
公开课
军事航空

老外都不解《剑星》涂鸦歧视寓意 黑人称没感觉被冒犯

本地新闻

荒野求生贝爷都得靠边站,真求生还得看留子

数码要闻

联想 ThinkBook TGX 显卡拓展坞极客版上架:1499 元,首发价更低

公开课

睡前进食会让你发胖吗?

军事要闻

俄美在安理会就外空核武器问题发生冲突

无障碍浏览 进入关怀版