LinkedIn缘何抛弃Ruby,转投NodeJS怀抱?

简介: 记得在2012年10月份的时候,鉴于性能和可扩展性方面的原因,LinkedIn将其移动设施的后台Ruby on Rails替换成了Node.js。那么为什么要做出这样的决策,Node.js又比Ruby强在哪里呢?下面一起来为你解答

记得在2012年10月份的时候,鉴于性能和可扩展性方面的原因,LinkedIn将其移动设施的后台Ruby on Rails替换成了Node.js。那么为什么要做出这样的决策,Node.js又比Ruby强在哪里呢?下面一起来为你解答。

Node.js——基于JavaScript的服务器端软件平台,它的作用主要是用于构建可伸缩的网络应用程序,在过去的几年里它已经风靡于全球众多开发商。Node.js使用一个事件驱动的、非阻塞I/O模型,这使得它的体积更小、效果更佳,适合运行在分布式设备里实时数据密集型的应用程序上。正是由于这些强大的优势,才吸引了大量的网站迁移到Node.js平台。其中就包括LinkedIn。

image.png

LinkedIn最初是建立在Ruby平台上,包括6万行代码,但是在2011年下半年的时候,LinkedIn开始利用Node.js来重建他们的核心移动服务,旨在提高它的服务性能。与此同时,重建过程也是一项简化过程,最终将代码缩减到2千行。你可能会问:为什么LinkedIn选择Node.js?主持这项任务的项目负责人Kiran Prasad给出了一些原因。

Node.js之所以最后被选中,是因为它提供了一些好处:

  • 更高的性能,在特定场景下Node.js能比Rails快20倍。
  • 使用3个服务器而不是30个就能应对10倍的流量增长。
  • 前端工程师能够进行后端代码的开发,两个团队实际上合二为一了。

下面给出详细解释:

代码减少的最大原因是我们当前代码库实质上是framework-free,这意味着原来的代码里有很多是冗余的,应该被去掉。

第二个原因主要是和LinkedIn现在正在采用的函数式编程有关,这跟面向对象的实现途径截然不同,不过后来证明函数式编程对于LinkedIn来说是一个重要的转变。在Ruby平台中,最常见的方式是创建一个可以封装每一个通信和类型的对象。Ruby实际上是一种函数式语言,但是它有一个比JavaScript更强大的类和对象的概念。所以在早期的代码库里,开发者有很多抽象层和对象层,而这些抽象层和对象层是在更大的组件化、可分解化和可重用性的前提下创建的。不过现在回想起来,那时候的这些动作都是多余的。

另一个减少代码的重要原因是MVC(model-view-controller)模型背后的动力,至少MVC模型可以在移动设备和Web基础系统之间能够做出更好的选择。在此之前,LinkedIn有很多服务器端呈现,现在随着模板和视图不断地向客户端转移,因此导致大量的呈现代码是多余的,缩减代码是必不可少的。之后出现的情况就是人们对后端技术的信任和依赖程度不断的加重,许多先进的东西也慢慢的出现了。这就意味着没必要像之前那样使用巨大的代码块了。

中国现在是一个拥有庞大网民数量的网络市场,LinkedIn在中国无疑会获得巨大的利润。但是LinkedIn紧随其后的问题是如何应对当前技术架构上的挑战。不过,LinkedIn迁移到Node.js将会一直保持之前的良好表现,并且在扩大市场的前提下将会更加的从容。

相关文章
|
2月前
|
JavaScript Unix Linux
nvm与node.js的安装指南
通过以上步骤,你可以在各种操作系统上成功安装NVM和Node.js,从而在不同的项目中灵活切换Node.js版本。这种灵活性对于管理不同项目的环境依赖而言是非常重要的。
723 11
|
7月前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。
|
6月前
|
资源调度 JavaScript 前端开发
前端开发必备!Node.js 18.x LTS保姆级安装教程(附国内镜像源配置)
本文详细介绍了Node.js的安装与配置流程,涵盖环境准备、版本选择(推荐LTS版v18.x)、安装步骤(路径设置、组件选择)、环境验证(命令测试、镜像加速)及常见问题解决方法。同时推荐开发工具链,如VS Code、Yarn等,并提供常用全局包安装指南,帮助开发者快速搭建高效稳定的JavaScript开发环境。内容基于官方正版软件,确保合规性与安全性。
5334 24
|
7月前
|
JavaScript 前端开发 数据可视化
【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡
【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡
394 2
【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡
|
7月前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
|
6月前
|
数据库
【YashanDB知识库】安装共享集群时报错:YAS-05721 invalid input parameter, reason: node name invalid
【YashanDB知识库】安装共享集群时报错:YAS-05721 invalid input parameter, reason: node name invalid
|
8月前
|
JavaScript
nodejs安装之npm ERR! code CERT_HAS_EXPIREDnpm ERR! errno CERT_HAS_EXPIRED reason: certificate has expired-证书错误通用问题解决方案-优雅草央千澈
nodejs安装之npm ERR! code CERT_HAS_EXPIREDnpm ERR! errno CERT_HAS_EXPIRED reason: certificate has expired-证书错误通用问题解决方案-优雅草央千澈
1316 27
|
10月前
|
存储 JavaScript 搜索推荐
Node框架的安装和配置方法
安装 Node 框架是进行 Node 开发的第一步,通过正确的安装和配置,可以为后续的开发工作提供良好的基础。在安装过程中,需要仔细阅读相关文档和提示,遇到问题及时解决,以确保安装顺利完成。
548 58
|
10月前
|
Web App开发 JavaScript 前端开发
2024年5月node.js安装(winmac系统)保姆级教程
本篇博客为2024年5月版Node.js安装教程,适用于Windows和Mac系统。作者是一名熟悉JavaScript与Vue的大一学生,分享了Node.js的基本介绍、下载链接及简单安装步骤。安装完成后,通过终端命令`node -v`验证版本即可确认安装成功。欢迎关注作者,获取更多技术文章。
280 2
2024年5月node.js安装(winmac系统)保姆级教程