【读书笔记】《深入浅出nodejs》第一章 Node简介

1. Node的官方网站: http://nodejs.org

2. Node的缘起:

  Ryan Dahl 打算设计一个高性能的Web服务器。

  Ryan Dahl 认为设计高性能Web服务器的要点在于:

    (1)事件驱动

    (2)非阻塞I/O

    (what? && why?)

  Ryan Dahl 选择使用JavaScript作为该服务器的实现语言,起名为Node。

  *为什么是JavaScript?

    (1)高性能

    (2)符合事件驱动

    (3)没有历史包袱

3. Node的特点

  (1)保留前端浏览器JavaScript中熟悉的接口,没有改写语言本身的任何特性,依旧基于作用域链和原型链。

  (2)异步I/O,在Node中,绝大多数的操作都以异步的方式进行调用。

  (3)事件与回调函数。事件的编程方式具有轻量级,松耦合,只关注事物点的优势。

  (4)单线程。不用像多线程编程那样处处在意状态的同步问题,这里没有死锁的存在,也没有县城上下文交换所带来的性能上的开销。

  *单线程的缺陷:

    (1)无法利用多核CPU

    (2)错误会引起整个应用退出,应用的健壮性值得考验。

    (3)大量计算占用CPU导致无法继续调用异步I/O -> 已使用child_process解决

  (5)跨平台

4.Node的应用场景

  (1)I/O密集型 -> Node面向网络且擅长并行I/O,能够有效地组织起更多的硬件资源,从而提供更多好的服务。(主要优势在于Node利用时间循环的处理能力,而不是启动每一个线程为每一个请求服务,资源占用极少。)

  (2)CPU密集型 -> 诀窍在于如何合理调度。

  (3)分布式应用

时间: 2024-10-24 18:24:18

【读书笔记】《深入浅出nodejs》第一章 Node简介的相关文章

NodeJS 第一章 Node的安装与配置

1. Mac OS X安装Node.js node.js官方专门提供了Mac OS X的安装包,你可以在http://nodejs.org找到Download链接, 然后选择Macintosh Installer,下载安装包.下载完成后运行安装包, 据提示完成安装.Node.js和npm会被安装到/usr/local/bin目录下, 安装过程中需要系统管理员. 2. 可以打开终端, 输入 node -v 查看 node 版本, npm -v 查看npm版本了, npm是Node包管理器, 我们可

编程珠玑(续) 读书笔记 -(前言+第一章性能监视工具)

<ACM通讯> 一次一章,仔细地读 ANSI American National Standards Institute  美国国家标准学会 1.1计算素数 #include<stdio.h> int prime(int n ) { int i; for(i =2;i<n;i++){ 999 if(n%i==0) 78022 return 0; 831 return 1; 168 } } main() { int i ,n; n=1000; 1 for(i=2;i<=n

[读书笔记]计算机组成原理-第一章系统概论

1.1 计算机么有软硬件构成,软件就程序之类的,硬件就看得见的之类的,硬盘等. 计算机系统是多层次的.大概就是 M4(高级语言翻译机) ↓ M3(汇编翻译机) ↓ M2(操作系统把) ↓ M1(机器语言机,就是2进制的东西在这个上运行) ↓ M0(微机,把M1中的一条指令拿过来,解释执行,好了再下一条.如此反复.看成是对M1的分解把) M4翻译高级语言,如C,js这些为汇编再到机器语言,要么直接翻译为机器语言.M4翻译成机器语言的程序有2种,编译程序和解释程序,编译么一次编译好,再执行机器语言,

[读书笔记]Effective Java 第一章

需要了解JAVA最近每个版本新增的特性,并善用这些新特性为自己的程序实现高效简洁的代码. 其中提到的编程原则包括: 模块要尽可能的小 代码应该要被重用,而不是被拷贝 模块之间的依赖性应该尽可能降到最小 错误应该尽早被检测,最好是在编译期

《淘宝技术这十年》读书笔记 (一).淘宝网技术简介及来源

我似乎是2007年初中看<赢在中国>的时候喜欢上马云的,当时对电脑都不是很了解,更别提阿里巴巴和淘宝网了.但当时还是被马云的几句点评深深地吸引,其中我印象最深的一句话就是"短暂的激情是不值钱的,只有长久的激情才是值钱的",以至于我在本科毕业德育答辩时用的题目就是这句话(德育答辩开题我用的题目也是马云的<If not now,when? If not me,who?>其含义是如果不是现在努力,什么时候努力呢?如果不是为了自己奋斗,又是为谁奋斗呢?).的确,想做成任

【读书笔记】计算机网络1章:课程介绍、协议、分层

这是我在Coursera上的学习笔记.课程名称为<Computer Networks>,出自University of Washington. 由于计算机网络才诞生不久,目前正在以高速在发展,所以有些旧的教材可能都已经跟不上时代了.这门课程在2013年左右录制,知识相对还是比较新的.覆盖了计算机网络中的各个协议层,从物理层到应用层都讲得非常仔细.学完这门课程之后对计算机网络会有比较深刻的了解. 本章讲述了这门课程的大致情况,讲述了协议.协议层等基本概念. 目标和动机 课程的主要目标就是介绍计算

SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章)

SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章) 示例数据库:点我 CHAPTER 08 数据修改 8.1 插入数据 8.1.1 INSERT VALUES 语句 8.1.2 INSERT SELECT 语句 8.1.3 INSERT EXEC 语句 8.1.4 SELECT INTO 语句 8.1.5 BULK INSERT 语句 8.1.6 标识列属性和序列对象 8.1.6.1 标识列属性 8.1.6.2 序列对象 8.2 删除数据 8.2.1 DELETE 语

读书笔记:计算机网络9章:QoS服务质量

章节概述 本章节主要讲QoS服务质量.涉及到网络层.传输层和应用层. QoS和用户需要得到的服务种类有关.不同的服务需要的带宽.延迟.丢包率都是不一样的.QoS是未来互联网的重要问题之一. 目前的互联网没有服务质量保证.因为目前的网络只是将数据包尽力投递到对方服务器,然而投递的速度.延迟.丢包率都是没有保障的.但是有时候"尽力"投递是不够的,因为有些应用需要有性能方面有保障,比如VoIP电话.虽然我们不能增加现有网络的带宽,但是我们可以给用户分配不同的带宽给用户带来更多利益. 举个例子

读书笔记:计算机网络8章:应用层

最近一个问题很困扰我,今天则得到了答案,也意味着我该选择了. 不知道大家有没有遇到过这样的情况,我是上年刚毕业,大四时进行过java培训,12年9月-13年4月,在这之前已经自学过java.7月份时进入一家公司工作,今年3月份辞职,4月份找到工作,来上班了.一开始就不太喜欢公司氛围,前台,hr,态度什么的都不太好,工作环境也极像客服部,整天电话不断,讨论声不断,第一个星期真是煎熬,去了两三天之后有辞职的想法,但是后面想想还是算了,公司待遇还可以. 但是进入到公司后leader让学PHP,学PHP