试读《Node.js项目实践:构建可扩展的Web应用》感悟
接触Node.js已经一段时间了,首先,我们需要了解node.js是什么?
Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。
Node是一个Javascript运行环境(runtime)。
实际上它是对Google V8引擎进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。
通过阅读《Node.js项目实践:构建可扩展的Web应用》书的目录结构,基本了解了这本书大概讲解了那些内容。第一章是关于node.js的一个介绍,安装和调试。全书没有对node.js基础语法等有介绍,所以本书不适合没有编程基础的同学阅读。阅读本书的同学最好是会javascript的,但不是说JavaScript不错的同学学习Node就能轻松拿下,总结:水深不深我还不知道,不过确实不浅。关于node的很多知识需要一步一步的学习与研究。
接下来就是介绍通过 Express.js 4 框架构建web项目,这个也是我们目前再做的,而且Express.js 4 版本是目前最新的大版本,所以对学习者来说,本书还是很实用的。
再接下来就是提供的试读章节,由于在工作中没有真正用过Mocha去做测试,看到这一章的内容还是很有诱惑性的。先说下目前我自己在做node项目测试的时候,基本都是通过WebStorm (类似Eclipse之类的一个开发工具,对开发node项目非常好)构建node项目,然后通过书写js脚本测试逻辑是否正确。
举个简单的示例说明下:
在工程目录下面新建一个DateUtil.js文件,输入下面内容:
var dateFormat = require('moment'); module.exports = { /** * return example:2015-06-08 16:58:00 * @param date */ getFullTimeStringDate:function(date){ return dateFormat(date).format('YYYY-MM-DD HH:mm:ss'); } , /** * return example:2015-06-08 * */ getTodayYYYYMMDDString:function(){ return dateFormat(new Date()).format('YYYY-MM-DD'); } }
在对DateUtil.js做测试的时候可以再建立一个DateUtilTest.js,在这个js里面调用DateUtil.js中的方法,测试逻辑是否正确。
var dateUtil = require("../utils/DateUtil"); console.log(dateUtil.getTodayYYYYMMDDString())
通过右击鼠标:选择run DateUtilTest.js 后在控制台显示:
"D:\Program Files (x86)\JetBrains\WebStorm 9.0.1\bin\runnerw.exe" D:\nodejs\node.exe DateTest.js 2015-06-30 Process finished with exit code 0
这只是一个简单的示例,我们知道再实际项目中比这个复杂的多。软件编程中,测试代码一般是根据需求,满足了需求基本就是ok的了。但是作为编程人员,一般都希望找到更好的测试工具,更高效的完成代码测试工作。本书《Node.js项目实践:构建可扩展的Web应用》第三章就介绍了一种和好的测试工具和方法。
第三章开始介绍了一些名词:
- TDD -- 测试驱动开发 (Test-Driven Development)
- BDD -- 行为驱动开发 (Behavior Driven Development)
- BDD 基于 TDD
TDD的执行过程基本是:
- 定义一个单元测试
- 执行这个单元测试
- 验证这个单元测试是否通过
同时也介绍了如何安装和使用 Mocha 插件。 使用npm安装mocha:
npm install -g mocha@1.16.2
mocha提供以下有用的服务:
- 支持测试报告
- 异步运行模式
- 丰富的配置选项
命令使用:
mocha test.js [options] 。
hock机制,即before(), beforeEach(), after(), afterEach()提供各个执行阶段的hock。
用assert进行测试,示例js代码:
var assert = require('assert'); assert.equal(1,2,'1===2');
assert是核心功能,通过require('assert')来获取该模块。
更多具体的内容大家可以看看试读章节。
如果没有怎么接触过的同学对npm可能非常迷糊,nmp是什么?
npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准。有了npm,可以很快的找到特定服务要使用的包,进行下载、安装以及管理已经安装的包。具体的大家可以去百度之类的搜索了解下。
再接下来的章节就是一些对node 模板 ,web应用,操作mongo DB之类的介绍,基本都是一些非常实用的功能性的介绍。
因为本书是一本翻译的书籍,我个人感觉如果再加一些基础语法介绍的章节,node web常用开发工具和常用插件介绍的章节,node操作关系型数据库的章节会更好。
不过,就本书而言,我觉得作为一个有编程基础的同学,通过阅读本书一定会有不少的收获。
相关推荐
Node实战|组件|工具|模块库大全 搞定最复杂应用 全面提升代码质量与开发效率
《响应式Web设计实践》试读干货,响应式——适应浏览器的不同——Web设计实践
测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读...
前言xi第 1 章 测试驱动的机器学习11.1 TDD 的历史 21.2 TDD 与科学方法 21.2.1 TDD 可构建有效的逻辑命题 31.2.2 TDD
IAM白皮书试读本.pdf
如:“Implementing.Responsive.Design-响应式Web设计实践”。书名经反复校对绝无一字错漏。 (5)每本pdf书默认都是有书签的。来源不限“某星”网站,还有各大网络书店和出版社官网的页码信息。 凡无书签的pdf...
《操作系统高分笔记》试读版.pdf
基于MVC的JavaScript Web富应用开发(构建下一代互联网富应用之最前沿技术),面向jQuery开发者的客户端应用开发指南,本书教你如何构建先进的富应用程序,书中给出的很多优秀的工具和最佳实践都是很多程序员和...
《Excel图表之道》试读样章.pdf《Excel图表之道》试读样章.pdf《Excel图表之道》试读样章.pdf《Excel图表之道》试读样章.pdf
------------缓冲区溢出攻击与防范抢鲜试读版.pdf
深入理解Android内核设计思想(第2版)(上下册)-试读版.pdf
本书介绍了软件项目行为的86 个模式,基本上概括了软件项目生命周期的方方面面,揭示了软件项目最常遇到的困境,反省了行业内种种不良习惯和做法。六位作者均来自一个开发咨询的管理团队大西洋系统行会,长期以来为...
分析最新的攻击,如BEAST、CRIME、BREACH、Lucky 13、RC4、三次握手和心脏出血 提供全面的部署建议,包括严格传输安全、内容安全策略和钉扎等高级技术 使用OpenSSL生成密钥和证书,创建私有证书颁发机构 ...
关于程序员学习程序的SQL经典试读版关于程序员学习程序的SQL经典试读版关于程序员学习程序的SQL经典试读版关于程序员学习程序的SQL经典试读版
如:“Implementing.Responsive.Design-响应式Web设计实践”。书名经反复校对绝无一字错漏。 (5)每本pdf书默认都是有书签的。来源不限“某星”网站,还有各大网络书店和出版社官网的页码信息。 凡无书签的pdf...
复杂数据统计方法基于R语言的应用高校用来上课的教材,很不错,很多案例,
本书分为两大部分,第一部分讲述程序员在编写程序和组织...从最简单的代码出发,并结合应用场景,梳理出多种基本或高级的代码编程技巧。干货十足,实际案例丰富,有鞭辟入里又能深入浅出的总结,还有对人生的思考 。
这本书写的挺好的。。 IT项目经理成长手记试读样章.pdf
1.7审时度势 — 复杂度与是否可做 19 1.8 C++ STL的使用 21 1.9多组输入的问题 27 第二章 入门经典 29 2.1 简单模拟 30 2.2 进制转换类问题 32 2.3 排版类问题 37 2.4 日期类问题 42 2.5 字符串类问题 45 ...