试读《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.js项目实践:构建可扩展的Web应用”点明了Node.js在构建现代Web应用时的强大能力,特别是其扩展性。扩展性是指系统在需要时能灵活地增加计算能力、存储容量等资源,而不会造成性能上的显著...
《机器学习实践:测试驱动的开发方法》是一本深入探讨如何将测试驱动开发(Test-Driven Development, TDD)应用于机器学习领域的著作。作者Matthew Kirk通过本书向读者展示了如何利用TDD的方法论来构建高效、可靠的...
《Web开发秘方》是一本专门探讨Web开发技术的专业书籍,其试读样章提供了对全书内容的初步了解。样章通常包含书籍的目录、前言以及每一章节的开头部分,让潜在读者能够评估书中的主题覆盖范围、作者的写作风格以及...
【标题】:Ella口语笔记试读.pdf 【描述】:这部分内容主要涉及英语口语中的常见表达,包括回家、回到、拿到、返回等情境的用词和短语,以及一些日常对话中的常用词汇和表达方式。 【标签】:求职面试、范文/模板/...
测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读...
响应式Web设计是一种网页设计技术,它的核心目标是使得网站能够自动适应不同屏幕尺寸和分辨率的设备,如桌面浏览器、平板电脑和手机。这种设计方法要求设计师和开发者采用灵活的思维方式,克服传统设计中的固定思维...
GWT(Google Web Toolkit)是Google推出的一款用于构建高性能、跨浏览器的富互联网应用程序(Rich Internet Applications,RIA)的开发框架。它允许开发者使用Java语言来编写客户端代码,并自动将其编译为优化过的...
5. **10步学习JavaScript.pdf**:JavaScript是构建Web应用程序的关键语言,对于通过Web界面与Oracle数据库进行交互的开发者来说,它是必备技能。 6. **Linux新手管理员指南.pdf**:这份资料可能是为Linux初学者准备...
【知识点详解】 1. 情报的特点:情报具有保密性、传递性和时效性,但不包括公开性,因为公开...以上内容涵盖了文献检索、图书馆服务、信息检索系统、检索语言和检索策略等多个知识点,详细阐述了各概念的特点和应用。
《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》试读版的前146页,涵盖了数据库系统中至关重要的SQL查询优化和调优主题。Oracle数据库是全球广泛使用的数据库管理系统之一,其高效的SQL执行引擎是其核心竞争力...
综上,pycsafe项目旨在构建一个安全、全面的在线试读平台,满足用户对各类数字内容的预览需求,同时也为内容创作者提供了一个展示和保护作品的平台。通过严谨的需求分析和技术实现,有望打造出一个高效、便捷、用户...
2. 前端框架:React、Vue.js或Angular等,用于构建响应式、用户体验良好的前端界面。 3. 数据库管理系统:MySQL、Oracle或MongoDB等,用于存储和管理大量数据。 4. 安全技术:HTTPS协议保证数据传输安全,防止中间...
《Gkwp开发手册(试读版)1》是一份针对Gkwp——首个WordPress中文主题开发框架的详细指南。Gkwp由“三吉工社”开发,旨在简化和加速WordPress主题的创建过程。在着手开发前,推荐观看配套的视频介绍以更好地理解其...
单选题和多选题涵盖了比例定义、尺寸比例、公差标注、剖视图绘制规则、车刀角度等基础概念,以及读零件图、标题栏信息、尺寸标注、车削应用、深孔加工技术等内容。 简答题主要讨论了车削内孔的困难及其原因,如观察...
14. 退学条件:试读期未达标、第二次试读、未请假连续两周缺课、未在规定年限内完成学业。 15. 学士学位授予条件:结业、平均学分绩点低、学术不诚信及受过留校察看处分者不予授予。 16. 自修限制:政治理论课、...
基于MVC的JavaScript Web富应用开发(构建下一代互联网富应用之最前沿技术),面向jQuery开发者的客户端应用开发指南,本书教你如何构建先进的富应用程序,书中给出的很多优秀的工具和最佳实践都是很多程序员和...
JSP(JavaServer Pages)是Java平台上的一种动态网页技术,它允许开发者将HTML、CSS、JavaScript与Java代码相结合,创建交互式的Web应用程序。在本系统中,JSP用于处理用户请求,展示数据,并与服务器端的JavaBean或...