看完这篇文章就知道为什么要使用 Node.js啦

经过这几年的发展 , 前端普遍进入了技术深水区 , 只会Web页面开发已经难以满足企业的需求 , Node逐渐成为了刚性技能 。
但Node在业务上的使用还没有那么普及 , 有的时候想用老板还不同意 , 本文将从4个角度解析“为什么要使用Node” 。
01 业务驱动Node有个突出的优势 , 他的开发者可以是前端 。 前端对于页面需要懂的数据有更好的理解 , 每个页面要用到哪些接口 , 每个接口要用到哪些字段前端是最清楚的 。
再加上实际业务开发中 , 前端页面需求经常会发生变化 , 需要修改字段或者数据结构 , 所以对接页面的这部分接口由前端直接开发非常合适 , 可以显著的减少沟通成本 。
02 架构需要面向用户的接口由Node中间层负责以后 , 真正的服务端可以专注于提供基于领域模型的对内接口 , 做微服务 。 比如可以基于Goods模型 , 提供所有商品相关的接口 , 基于Users模型 , 提供所有用户相关 。
当一个接口需要商品+用户信息时 , 由Node分别查询组装 , 从整体业务代码维护角度来说 , 变得更容易 , 不会因为业务发展使得每个接口都异常繁杂 。
03 性能满足如果仅仅是架构层面的需求 , 需要有一个中间层来沉淀业务 , 那用Java , PHP也可以做到 , 为什么说Node更适合做呢?
因为Node天生异步!
【看完这篇文章就知道为什么要使用 Node.js啦】众所周知 , js是一门单线程语言 , 所以Node在实现的时候 , 需要借助libuv来实现异步 。
看完这篇文章就知道为什么要使用 Node.js啦文章插图
看完这篇文章就知道为什么要使用 Node.js啦文章插图
如图所示 , libuv为Node提供了线程池 , 事件池 , 异步I/O等能力 。 正是因为其中网络I/O的异步能力 , 可以让Node做接口聚合时 , 能够更高效的异步并发处理 。
04 学习成本较低Node使用js开发 , 只需要学习简单的api , 前端开发者就可以无障碍使用 , 学习成本很低 。
而且 , Node具有活跃的社区和丰富的模块池 , 拥有很多现成的功能实现 。 在框架方面 , 也有成熟的koa , express等基本框架和egg等二次封装框架 , 可根据需求选择 , 上手也比较方便 。