资讯专栏INFORMATION COLUMN

why nodejs

wujl596 / 1627人阅读

摘要:一个快速计算假设每个线程可能有一个伴随的内存,运行在具有的系统上,我们理论上最多有个并发连接,以及线程之间的上下文切换的成本。通过避免这一切,实现了超过个并发连接的可伸缩性级别作为概念验证。

通过近期的面试,我认识到自己的学习方法还是有问题,面百度的时候面试官问我,为什么要用node,为什么不用php,对于只学过node几天的我当时就楞了,大概想到单线程事件轮询和多线程,后来面试官告诉我是异步和同步的差异,在实习的时候也没问过为什么我们就用的是node而不是php,只是觉得大家不都用node么,前几天师兄也建议我学习一个东西,首先不要去看文档和具体操作,而要透过大牛们是怎么看待这个东西的,来发现这个东西解决了什么问题,跟其他不同在哪里,这个东西的设计思想是什么,这应该就是所谓的技术选型吧,对于别人给什么就用什么的我以往很少思考技术选型的问题,实在是一个缺陷,更多的时候,我只是一个使用者而不是开发者

nodejs主要思想

Node.js的主要思想是:面对在分布式设备上运行的数据密集型实时应用程序,使用非阻塞,事件驱动的I / O保持轻量级和高效性。

一个快速计算:假设每个线程可能有一个伴随的2 MB内存,运行在具有8 GB RAM的系统上,我们理论上最多有4000个并发连接,以及线程之间的上下文切换的成本。这是您通常在传统的网络服务技术中处理的场景。通过避免这一切,Node.js实现了超过1M个并发连接的可伸缩性级别(作为概念验证)。

why use nodejs

题叶的回答:

Node.js 专注解决 Web 服务器普遍存在的 IO. 数据库访问时间缓慢, 而 CPU 大量时间闲置的问题, 顺便解决广大前端开发者不方便写后端服务器的问题. 加上用的人多了, 别的好处也滋生了. 如果考虑其他的方面, Node.js 未必是好的选择.. 也可以不用.

是前端尝试学习后端的最佳选择
曾经有人跟我说会写javascript就会写node
nodejs实际上是一种上下文,允许在后端运行javascript代码
实现在后端运行javascript代码原理:使用google的v8引擎解释和执行javascript代码

事件驱动,异步编程

Node.js的设计思想中以事件驱动为核心,它提供的绝大多数API都是基于事件的、异步的风格。意味着虽然在代码结构中,函数看似是依次注册的,但是它们并不依赖于自身出现的顺序,而是等待相应的事件触发。重要的优势在于,充分利用了系统资源,执行代码无须阻塞等待某种操作完成,有限的资源可以用于其他的任务。此类设计非常适合于后端的网络服务编程,Node.js的目标也在于此。在服务器开发中,并发的请求处理是个大问题,阻塞式的函数会导致资源浪费和时间延迟。通过事件注册、异步函数,开发人员可以提高资源的利用率,性能也会改善。

它很快

Node.js是一个JavaScript运行时,它使用Google开发的V8引擎在Chrome中使用。 V8以闪电般的速度编译和执行JavaScript,主要是因为V8将JavaScript编译为本机机器码。

换句话说,读取和写入网络连接,读取/写入文件系统和读取/写入数据库,这些都是Web应用程序中非常常见的任务 - 在Node中非常快速地执行

前后端语言统一

使用Node.js可以在客户端,服务器和数据库中使用相同的语言。您可以将数据以其原生JSON格式从浏览器保存到磁盘

参考资料

TOP 10 REASONS TO USE NODE.JS
Why The Hell Would I Use Node.js?

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/91047.html

相关文章

  • 分布式软件架构整合(二)

    摘要:续上篇所需技术等说明本编讲解一个分布式架构的整个流程,首先对上编中的工程作一些小小的改动,以支持接下来的实验。本篇中,定义了服务提供者,注册中心及客户端消费者三者关系。一服务提供者这里首先对服务端进行改造。 (续上篇) 所需技术:spring、mybatis、druid、flyway、logback、nodejs,zookeeper,dubbo,dubbo-admin等;说明:本编讲解...

    you_De 评论0 收藏0
  • 【新手向 · 一站式教程】利用DigitalOcean云服务器,部署Nodejs服务

    摘要:前言关于此教程作为一名业余开发者,因为公司都是做和的。。。建议采用的方式下载,可参考官方教程。但是服务的进程管理,即便对于初学者来说,也是必不可少的一课。 前言 关于此教程 作为一名业余Nodejs开发者,因为公司都是做Java和C++的。。。我是在没有任何人可请教的情况下,一个坑一个坑坚(ku)实(bi)地踩过来的。作为对segmentdefault社区的回报,把自己微不足道的经验分...

    用户83 评论0 收藏0
  • JSON不等于JavaScript对象

    摘要:很多人将看成是对象。其实是一种字符串的表示方法,这种表示受到了对象结构的启发而已。设计的用意是方便服务器和浏览器交换数据。值可以是用双引号包裹的字符串,或是数字,或,或,或一个对象数组。的最后一个值不使用分隔符。 很多人将JSON看成是JavaScript对象。其实JSON是一种字符串的表示方法,这种表示受到了JavaScript对象结构的启发而已。设计JSON的用意是方便服务器和浏览...

    icattlecoder 评论0 收藏0
  • 预告:JavaScript模块全览

    摘要:之前写的文章急速全栈教程得到了不错的阅读量,霸屏掘金头条天,点赞过千,阅读近万,甚至还有人在评论区打广告,可见也是一个小小的生态了。今天看到的霸屏的,也是讲全栈的,见参考文章接下来要写的是模块。全局命名污染和命名冲突依赖管理。 之前写的文章急速Js全栈教程得到了不错的阅读量,霸屏掘金头条3天,点赞过千,阅读近万,甚至还有人在评论区打广告,可见也是一个小小的生态了;)。看来和JS全栈有关...

    focusj 评论0 收藏0

发表评论

0条评论

wujl596

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<