文档章节

【读书笔记】《Node.js Design Patterns》前言

花果山妖
 花果山妖
发布于 2015/02/14 16:54
字数 1086
阅读 777
收藏 24

##前言

前言内容不多,开篇总述了一下。作者把Node.js比喻成“游戏的改变者”(game-changer),改变了进十年来的web开发模式。这话说的有点儿大,更像是为了吸引读者看下去。我觉得Node.js的出现的确改变了很多东西,让开发变得更有趣,让javascript有了更多的想象空间,不过距离改变世界,应该还有很多路要走,不如说Node.js给我们带来了一个方向,这个方向就是作者在下面阐述的三点:

###第一、javascript的革命

Node.js让javascript向后端迈进,而且这一步迈的还比较成功,面向对象和函数式的混合编程在后端表现不赖,还带来了很多新鲜点,这里提到了两点:单语言应用和前后端共享代码。

在Node.js出现之前,一个程序员想凭借一种语言前后通吃是不行的,即便是王者般的java亦或者宗师般的C++,这就给一个更偏向于做应用的程序员很大的负担,而Node.js的出现,给了大家实现了这个幻想,者也是我最初决定投身这个领域的一个源动力。要知道有些程序员脑子里有极客思维,喜欢单打独斗,如果可以利用更少的工作量创造出更强大的东西,这些人会很高兴。凭借着javascript的大量程序员基础,这些人很快的接受js在后端的应用。当然,js的一些独有特点可以被叫做优点,在某些时候,也会变成缺点。说的哲学一点,我们不会造出来万能的东西,Node.js更不是。

###第二、单线程与异步结构

作者讲到,这两个特点带来了性能与可扩展性的同时,还带来了对并发和并行开发方法的改变。队列代替了互斥锁,回调和事件代替了多线程,因果关系(causality)代替了同步。

对于js的这种异步模式,褒贬不一,一些人觉得这带来了性能的提高,一些人觉得代码难以控制,是啊,世间安得双全法,所以这些东西还要慢慢的探究才能有答案,或者是更好的解决方法。

###第三、npm

这点作者和我想到一块儿去了,npm也是我爱上Node.js的很重要的一个原因,他也将这个东西认为是最重要的一个方面。npm,一个包管理器,他拥有着庞大而快速增长的模块库。它的文化是简洁、实用、极端模块化,事实也是这样的。

我想每一个用过npm的人都会爱上它,它给我带来了一种小时候拼积木的感觉。它的项目目录组织方式很有调理,让你感觉项目就是项目,不存在秘密,是里面有很多小模块的项目,而这些小模块都很有条理的在那里,也许模块里还有模块,不过还是很有调理的在它改在的位置。还有package.json这个文件的出现,是一份很明确的说明书,即使你拿到的是别人的项目,看着这份说明书,也能组装起来。

###关于作者

image

上面那位就是作者,叫做Mario Casciaro,以前在IBM,现在在一家叫做d4h的公司(我也没去深究这个公司是干啥的~)

他的github: https://github.com/mariocasciaro (他最著名的项目叫做scatter,没研究过) 他的twitter: https://twitter.com/mariocasciaro 他的主页:http://www.mariocasciaro.me/ (主页里没啥东西)s

© 著作权归作者所有

共有 人打赏支持
上一篇: 收集贴
下一篇: 闭包与node.js
花果山妖
粉丝 3
博文 17
码字总数 9727
作品 0
沈阳
私信 提问
加载中

评论(2)

花果山妖
花果山妖

引用来自“lovederh”的评论

最近也在学习,感觉简单了很多
嗯嗯~加油~这本书不错~有机会可以找找看~
会炒饭的美工
会炒饭的美工
最近也在学习,感觉简单了很多
收集一些有用的 Node.js 资源

Tutorials Node.js guide Node tuts Videos Introduction to Node.js with Ryan Dahl Node.js: Asynchronous Purity Leads to Faster Development Parallel Programming with Node.js Server......

鉴客
2012/04/09
993
1
OSChina 技术周刊第二十二期 —— DUBBO 配置规则详解

每周技术抢先看,总有你想要的! 移动开发 【翻译】为你的 Android 应用增加本地搜索功能 前端开发 【软件】AngularJS 的剪贴板扩展 ngClip 【软件】国际化和本地化 JavaScript 库 Globaliz...

OSC编辑部
2015/02/16
0
0
Node.js的学习资源、教程和工具

这篇文章编译整理自Stack Overflow的一个如何开始学习Node.js的Wiki帖,这份资源列表在SO上面浏览接近60万次,数千个收藏和顶。特意整理发布到这里,其中添加了部分中文参考资料。 学习指南和...

90后爱国
2015/07/21
0
0
OSChina 技术周刊第二十二期 —— DUBBO配置规则详解

每周技术抢先看,总有你想要的! 移动开发 【翻译】为你的 Android 应用增加本地搜索功能 前端开发 【软件】AngularJS 的剪贴板扩展 ngClip 【软件】国际化和本地化 JavaScript 库 Globaliz...

OSC编辑部
2015/02/16
2K
0
超过 40 个 Node.js 开发者资源

主站: http://www.nodejs.org/ Node.JS on OpenShift https://openshift.redhat.com/community/blogs/nodejs-on-openshift-you-bet-your-javascript Getting Started with Node.JS on OpenS......

oschina
2012/08/15
3.2K
9

没有更多内容

加载失败,请刷新页面

加载更多

python中类方法和静态方法区别

面相对象程序设计中,类方法和静态方法是经常用到的两个术语。 逻辑上讲:类方法是只能由类名调用;静态方法可以由类名或对象名进行调用。 在C++中,静态方法与类方法逻辑上是等价的,只有一...

xiangyunyan
今天
9
0
Hibernate SQLite方言

以下代码有参考过github上国外某位大佬的,在发文的最新稳定版Hibernate上是可用的,有时间再仔细分析一下 import org.hibernate.dialect.Dialect;import org.hibernate.dialect.function.S...

CHONGCHEN
今天
4
0
CentOS 7 MariaDB搭建主从服务器

本文编写环境为CentOS7。确保关闭SELinux,关闭防火墙或者防打开指定端口。具体信息如下 #master[root@promote ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) [r...

白豆腐徐长卿
今天
11
0
介绍python中运算符优先级

下面这个表给出Python的运算符优先级,从最低的优先级(最松散地结合)到最高的优先级(最紧密地结合)。这意味着在一个表达式中,Python会首先计算表中较下面的运算符,然后在计算列在表上部...

问题终结者
今天
4
0
Spring Boot 2.x基础教程:快速入门

简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让...

程序猿DD
昨天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部