点击围观!腾讯 TAPD 助力金融行业研发提效、敏捷转型最佳实践! 了解详情
写点什么

Flexi 传授如何说服自己的老板采用 Node.js

  • 2012-05-21
  • 本文字数:1312 字

    阅读完需:约 4 分钟

Node.js 早期核心类库的贡献者 Flexi ,最近在自己的个人博客上,阐述了对于广大热爱 Node.js 技术的朋友,如何说服自己老板将 Node.js 应用到现有的系统。

首先需要了解 Node.js 在什么场景下最适用,这是做成事情的第一步。

Node.js**** 的应用场景

1) 适合

  • JSON APIs——构建一个 Rest/JSON API 服务, Node.js 可以充分发挥其非阻塞 IO 模型以及 JavaScript 对 JSON 的功能支持 (如 JSON.stringfy 函数)
  • 单页面、多 Ajax 请求应用——如 Gmail,前端有大量的异步请求,需要服务后端有极高的响应速度
  • 基于 Node.js 开发 Unix 命令行工具—— Node.js 可以大量生产子进程,并以流的方式输出,这使得它非常适合做 Unix 命令行工具
  • 流式数据——传统的 Web 应用,通常会将 HTTP 请求和响应看成是原子事件。而 Node.js 会充分利用流式数据这个特点,构建非常酷的应用。如实时文件上传系统 transloadit
  • 准实时应用系统——如聊天系统、微博系统,但 Javascript 是有垃圾回收机制的,这就意味着,系统的响应时间是不平滑的 (GC 垃圾回收会导致系统这一时刻停止工作)。如果想要构建硬实时应用系统, Erlang 是个不错的选择

2) 不适合

  • CPU 使用率较重、IO 使用率较轻的应用——如视频编码、人工智能等, Node.js 的优势无法发挥
  • 简单 Web 应用——此类应用的特点是,流量低、物理架构简单, Node.js 无法提供像 Ruby Rails 或者 Python Django 这样强大的框架
  • NoSQL + Node.js——如果仅仅是为了追求时髦,且自己对这两门技术还未深入理解的情况下,不要冒险将业务系统搭建在这两个漂亮的名词上,建议使用 MySQL 之类的传统数据库

如果系统可以匹配 Node.js 的适用场景,那么是时候采取具体的措施来说服老板了。

说服自己老板的方式

  • 构建一个简单的原型——花一周时间构建系统某一部分的原型是非常值得的,同时也很容易和老板在某一点达成一致,等到系统真的在某一部分应用了 Node.js ,就是打开局面的时候
  • 寻找开发者——首先 JavaScript 语言的普及度很高,一般公司都不乏 Web 前端工程师,而此类工程师的学习门槛也非常低。这就意味着 Node.js 很容易招人,或者公司就隐藏了一些高手
  • 强大的社区支持—— Node.js 社区非常活跃,吸引很多优秀的工程师,这就意味着公司可以很容易从社区得到免费或者付费的支持
  • 系统性能考虑——JavaScript 引擎 Google V8 ,加之原生异步 IO 模型,使得 Node.js 在性能的表现非常出色,处理数以千计的并发请求非常轻松
  • 专业公司的支持——使用开源技术的最大问题是,原作者不承诺对其产品进行技术支持或者质量保证。现在 Node.js 已经得到 Joyent 公司的赞助,这就保证了未来 Node.js 的发展是可持续性的

Flexi 的文章在社区引发了很多讨论:

有人对文章阐述的观点表达了支持, @ChrisArchitect 说:

文章写的非常好,希望作者有更多的文章,来描述一门语言在什么场景下最适合,可以带来怎样的价值,避免盖棺定论

也有人对文章某些观点提出了质疑, @jbooth 说:

异步 IO 模型并不是原生的,而且在多核系统体现不出任何性能优势。不要认为只有使用 Node.js MongoDB 才能实现高性能站点,Java 也一样可以做,使用 C 语言的可操控性更好,但现实是 Java 不够时髦,C 语言做 Web 站点很怪

The right technology for the right job_——_ 技术没有银弹,只有适合的,才是最好的。

2012-05-21 02:188019

评论

发布
暂无评论
发现更多内容

漫谈前端自动化测试演进之路及测试工具分析

京东科技开发者

前端 自动化测试 前端测试 企业号 4 月 PK 榜

极光笔记 | 让运营“从心”出发,打造身临其境的客户体验!

极光JIGUANG

运营 消息推送 极光推送

MySQL到ClickHouse数据同步产品对比推荐

NineData

MySQL Clickhouse dba bifrost NineData

Typescript-类型检测和变量的定义

格斗家不爱在外太空沉思

typescript 三周年连更

软件架构生态化-多角色交付的探索实践

京东科技开发者

架构 架构师 交付能力 企业号 4 月 PK 榜

《社区人员管理》实战案例设计&个人案例分享

京东科技开发者

架构 测试 编码 在线设计平台 企业号 4 月 PK 榜

多家大厂CTO鼎力推荐的微服务架构设计模式真的硬核

小小怪下士

Java 程序员 微服务 后端

Spring Boot 实现接口幂等性的 4 种方案

做梦都在改BUG

Java Spring Boot

实习生疑问:为什么要在需要排序的字段上加索引呢?

架构精进之路

MySQL 数据库 索引 三周年连更

全网已经疯传90多万次的java修炼指南!已帮我拿下11个大厂offer

做梦都在改BUG

治理告警风暴,告警降噪的一些典型手段

龙渊秦五

告警风暴 告警降噪

基于 Flink CDC 的现代数据栈实践

Apache Flink

大数据 flink 实时计算

不懂就问,Milvus 新上线的资源组功能到底怎么样?

Zilliz

非结构化数据 Milvus Zilliz

再聊 MySQL 聚簇索引

江南一点雨

Java MySQL

DAPP 上链代币质押挖矿系统开发源码部署

l8l259l3365

“分割一切”大模型SAM、超轻量PP-MobileSeg、工业质检工具、全景分割方案,PaddleSeg全新版本等你来体验!

飞桨PaddlePaddle

计算机视觉 飞桨 图像分割

Flomesh 软负载 FLB GA 版本发布

Flomesh

负载均衡 云原生 Pipy

基于 Flink CDC 的现代数据栈实践

Apache Flink

大数据 flink 实时计算

CentOS7 离线安装 Zabbix5.0

A-刘晨阳

Linux zabbix 三周年连更 离线安装

缓存与数据库双写一致性几种策略分析

京东科技开发者

数据库 缓存 高并发 数据一致性 企业号 4 月 PK 榜

Flink CDC 在易车的应用实践

Apache Flink

大数据 flink 实时计算

互联网工程师Java面试题及答案整理(2023速成版,7天就能吃透)

采菊东篱下

java面试

阿里P7了!全靠死磕这份阿里全彩版"并发编程笔记",大厂必备!

Java你猿哥

Java 并发编程 架构师 java面试 Java工程师

Karmada v1.5发布:多调度组助力成本优化

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

企业微信接入系列-自建应用

六月的雨在InfoQ

企业微信 应用配置 三周年连更 自建应用

ChatGPT,音乐,与数据库

沃趣科技

数据库 云原生 音乐 ChatGPT

一篇神文就把java多线程,锁,JMM,JUC和高并发设计模式讲明白了

做梦都在改BUG

Java 多线程 高并发

代码质量难评估?一文带你用 SonarQube 分析代码质量!

Java你猿哥

架构师 代码 SSM框架 sonar

SAP Emarsys 的前后台技术栈

Jerry Wang

SaaS Cloud SAP 思爱普 三周年连更

leetcode-2335. 装满杯子需要的最短总时长

肥晨

三周年征文

Spring @Import注解的使用和源码分析

Java你猿哥

Java spring import SSM框架

Flexi传授如何说服自己的老板采用Node.js_JavaScript_李湃_InfoQ精选文章