我为什么向后端工程师推荐NodeJS nodejs 作为后端写逻辑真的合适吗

\u4e3a\u4ec0\u4e48 Node.js \u540e\u7aef\u7a0b\u5e8f\u5458\u8fd9\u4e48\u96be\u62db

\u5f88\u591a\u4eba\u9009\u62e9nodejs\u5c31\u662f\u770b\u4e2d\u524d\u540e\u7aef\u8bed\u8a00\u7edf\u4e00\uff0c\u4f46\u77db\u76fe\u7684\u662f\uff0c \u8fd9\u79cd\u524d\u540e\u7aef\u90fd\u61c2\u7684\u5927\u725b\uff0c\u4e00\u822c\u90fd\u662f\u4f01\u4e1a\u7684\u4e2d\u575a\uff0c\u4ed6\u4eec\u4e0d\u4f1a\u8f7b\u6613\u8df3\u69fd\u3002
\u73a9node\u7684\u5927\u90e8\u5206\u90fd\u662f\u524d\u7aef\uff0c\u524d\u7aef\u540e\u7aef\u57fa\u7840\u8584\u5f31\u504f\u591a\uff0c\u5f88\u591a\u540e\u7aef\u53c8\u770b\u4e0d\u4e0anode\u53bb\u73a9go\u53bb\u4e86\uff0c\u6240\u4ee5\u4e0d\u4e0a\u4e0d\u4e0b

\u73b0\u5728\u524d\u540e\u7aef\u90fd\u8981\u5199\u903b\u8f91\uff0c\u540e\u7aef\u5199\u903b\u8f91\u66f4\u65b9\u4fbf,\u5f53\u7136\u540e\u7aef\u5199\u5566\u3002\u6700\u597d\u662f\u524d\u7aef\u5c31\u8d1f\u8d23\u63a5\u6536\u6570\u636e\uff0c\u6e32\u67d3\u9875\u9762\u548c\u6570\u636e\u5c31\u597d\u4e86\u3002\u51fa\u4e86\u95ee\u9898\u597d\u7529\u9505\u554a\u3002

科普文一则,说说我对Node.js的一些认识,以及我作为前端工程师为什么会向后端工程师推荐Node.js。
“Node.js 是服务器端的 JavaScript 运行环境,它具有无阻塞(non-blocking)和事件驱动(event-driven)等的特色,Node.js 采用V8引擎,同样,Node.js实现了类似 Apache 和 nginx 的web服务,让你可以通过它来搭建基于 JavaScript的Web App。”
我想不仅仅是Node.js,当我们要引入任何一种新技术前都必须要搞清楚几个问题:
我们遇到了什么问题?
这项新技术解决什么问题,是否契合我们遇到的问题?
我们遇到问题的多种解决方案中,当前这项新技术的优势体现在哪儿?
使用新技术,带来哪些新问题,严重么,我们能否解决掉?
我们的问题:Server端阻塞
Node.js被设计用来解决服务端阻塞问题.下面通过一段简单的代码解释何为阻塞:
Js代码:
//根据ID,在数据库中Persons表中查出Name
var name = db.query("select name from persons where id=1");
//进程等待数据查询完毕,然后使用查询结果。
output("name")

这段代码的问题是在上面两个语句之间,在整个数据查询的过程中,当前程序进程往往只是在等待结果的返回.这就造成了进程的阻塞.对于高并发,I/O密集行的网络应用中,一方面进程很长时间处于等待状态,另一方面为了应付新的请求不断的增加新的进程.这样的浪费会导致系统支持QPS远远小于后端数据服务能够支撑的QPS,成为了系统的瓶颈.而且这样的系统也特别容易被慢链接攻击(客户端故意不接收或减缓接收数据,加长进程等待时间)。

说说我对Node.js的一些认识,以及我作为前端工程师为什么会向后端工程师推荐Node.js。
“Node.js 是服务器端的 JavaScript 运行环境,它具有无阻塞(non-blocking)和事件驱动(event-driven)等的特色,Node.js 采用V8引擎,同样,Node.js实现了类似 Apache 和 nginx 的web服务,让你可以通过它来搭建基于 JavaScript的Web App。”
我想不仅仅是Node.js,当我们要引入任何一种新技术前都必须要搞清楚几个问题:
我们遇到了什么问题?
这项新技术解决什么问题,是否契合我们遇到的问题?
我们遇到问题的多种解决方案中,当前这项新技术的优势体现在哪儿?
使用新技术,带来哪些新问题,严重么,我们能否解决掉?
我们的问题:Server端阻塞
Node.js被设计用来解决服务端阻塞问题.下面通过一段简单的代码解释何为阻塞:
Js代码:
//根据ID,在数据库中Persons表中查出Name
var name = db.query("select name from persons where id=1");
//进程等待数据查询完毕,然后使用查询结果。
output("name")

这段代码的问题是在上面两个语句之间,在整个数据查询的过程中,当前程序进程往往只是在等待结果的返回.这就造成了进程的阻塞.对于高并发,I/O密集行的网络应用中,一方面进程很长时间处于等待状态,另一方面为了应付新的请求不断的增加新的进程.这样的浪费会导致系统支持QPS远远小于后端数据服务能够支撑的QPS,成为了系统的瓶颈.而且这样的系统也特别容易被慢链接攻击(客户端故意不接收或减缓接收数据,加长进程等待时间)。

扩展阅读:web前端三大主流框架 ... 软件开发能干一辈子吗 ... 后端程序员有前途吗 ... 前端开发和后端哪个累 ... 前端工程师月薪多少钱 ... 后端工程师工作内容 ... 后端开发工资一般多少 ... 前端后端哪个好找工作 ... 前端和后端哪个辛苦 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网