Node.js与Ruby on Rails 谁最适合Web开发?

2017-11-15 10:53:24来源:http://www.d1net.com/news/hydt/499371.html作者:企业网人点击

分享

本文将介绍并比较Node.js和Ruby on Rails在Web技术方面的一些优点和缺点。



先看看两种技术的一些相同之处。

* 受欢迎的服务器端技术


* 容易学习


* 高性能


* 由顶级网站/应用程序使用


* 强大的社区


* 基于类似MVC的结构


* 发展快速


Node.js和Rails都是备受推崇的服务器端技术,可以使用许多不同的堆栈和数据库等,可以实现不同的功能。两者很容易学习。Node使用JavaScript,Rails使用Ruby。但是Ruby和JavaScript相比与Java,C#或其他一些高级语言而言更容易学习,有大量的资源可供学习。 Node.js和Ruby on Rails都非常好,接下来将讨论性能水平。使用这两种技术的流行网站很多。 Node和Rails都拥有非常强大的社区。


Rails已经存在有一段时间了,但是Node也越来越受欢迎。现在MVC或模型---视图---控制器是一种设计模式,但Ruby on Rails很难与MVC一起使用。在诸如Express之类的Node中,MVC是可能的。不过,Express比Rails更灵活。用户可以只采取MVC的某些方面。Node和Rails都用于快速开发和原型化。 Rails的折叠功能很好,而且Express也有生成器和命令行工具。


Rails优点

* 一致的结构


* 数据库迁移


* 发展速度


* 一门强大语言


* Ruby gems.


* 成熟且有声望的社区


Rails有一个非常强大的MVC结构。大多数Rails应用程序在核心文件和文件夹方面看起来非常相似。有这个坚实的基础,然后就可以使用gems和自定义的包和数据库来构建。


Rails有非常好的数据库迁移功能。允许用户在数据库中创建和编辑表格和列,而无需手动进入、添加或更改内容,为用户提供了一个很好的日志或路径。


Node,有一些用于迁移的软件包或模块,比如DB-migrate,它们可以提高工作效率,但不像Rails那样深入和易于使用。在原型设计和快速开发方面,Node没有太多可以打败Rails的技术。如果您使用第三方工具和模块,Node.js和Express在快速开发方面都相当不错。但Rails拥有所有这些东西。


Ruby语言有优点也有缺点,但在大多数情况下,它是很受欢迎的。Ruby是一种多范式的语言,可以做程序代码的功能,但大部分是面向对象的。RubyGems是Ruby on Rails的包管理器,它用于扩展框架的核心功能。这与Node.js的npm相似。所有Rails应用程序都有一个gem文件,可以在其中指定需要的gem。可以运行一个bundler命令来安装它们,类似于使用Node.js的npm安装。


关于Ruby on Rails的另一个优点是,它已经存在了一段时间,拥有一个非常受人尊敬的社区。维护Ruby on Rails的开发人员非常聪明,对框架非常热情。核心框架上有大量资源,包括论坛,博客帖子和文档,以帮助用户解决问题。这些都是Ruby on Rails的优势。


Rails缺点

* 性能


* 太简单


* 受欢迎程度


* 缺乏文档


我们来谈谈一些缺点。我们听说Ruby on Rails最大的一些抱怨是它的相对速度较慢。 Rails是一个很大的框架,核心功能有很多。除了一些较轻的框架之外,还有gem和应用程序文件等。有太多的自动化和搭建,这让开发人员没办法真正了解Rails框架。


另外一个缺点是Rails不像Node.js那样受欢迎。目前,Node.js处于Web开发的前沿,而用户对Rails的新鲜感已经逐渐消失了。相比于其他语言,更多的公司正在招聘JS开发人员。如果这是五年前,Rails或Ruby将成为学习的三大语言之一,但是现在它已经不那么受欢迎了。前面简单地提到过,核心Rails框架有一些非常好的文档和示例,允许学习简单的搭建命令和数据库迁移。


Node.js优点

* 非常受欢迎


* 高性能


* 异步


* 高扩展


* JavaScript前端和后端。


* 灵活的文件结构。


* npm和模块。


Node.js的一个优势是它非常受欢迎,基本上是网页开发中的最新尖端技术,场需求非常高。Node和Express框架都有非常活跃的开源社区。在npm上有很多好的模块,当谈到速度和性能的时,可以说Node将Rails踢出了舞台。事实上,Node几乎把任何其他都踢出了舞台。它运行在速度如闪电般的Google JavaScript引擎上。 Node用于构建几乎像桌面应用程序的实时Web应用程序。


Node.js也是异步的。这意味着程序向服务器发送请求时,不必等待回复,可以继续执行。Node在单个线程上运行不需要等待请求完成,然后再发送下一个。所以Node.js非常具有伸缩性,在单线程中起着很大的作用。Node对像MongoDB这样的NoSQL数据库也非常高效,比传统的关系型数据库更具可扩展性。几乎所有的大公司都转移到了Node.js上,对他们的生产力有了很大的提升。


另一个重要的因素是Node使用JavaScript,被广泛用于许多Web栈。很多情况下,前端的语言与后端的语言不同,但是Node.js不存在这种问题。前端和后端都使用JavaScript。


Node.js、Express或Happy.js,这些框架中的任何一个都具有非常灵活的文件结构。让你按照自己的想法构建想要的应用程序。可以将所有内容都塞进一个App JS文件中。像Ruby的gem一样,Node也有它自己的包管理器,称为npm或Node包管理器。 npm和Ruby gem最大的区别是依赖关系的管理方式。使用Ruby,依赖关系是全局安装,所以你必须使用捆绑器。Npm实际上负责为模块提供所有的这些。他们被放入Node模块文件夹,这些模块也可以拥有自己的Node模块文件夹,并具有自己的依赖关系


Node.js缺点

* 消耗CPU密集型任务


* 不一致性


* 新技术


* 回调


* 太模块化


Node和许多CRUD风格的应用程序一样好,但它绝对会占用CPU密集型的应用程序。因为它是在单线程上运行,因此只要执行某些需要时间的操作,就会将所有传入的东西进行请求排队。


关于Node的另一个缺点是它可能有点不一致。有些人觉得这个API不断的改变。有时不是很向后兼容,不仅如此,Express应用程序的结构通常非常自由和灵活,甚至有时它想让开发者掐死自己。


Rails对自身的要求是非常的严格,所以用它想编写不好的代码都很困难。由于Node是异步的,所以将会处理很多的回调函数。


这两个后端框架都有其优点和缺点,但在技术方面它们都是很好的工具。


最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台