总体介绍

  《Node.js+MongoDB+AngularJS Web开发》,于2015年6月出版,是一本翻译过来的书,原书名为《Node.js,MongoDB and AngularJS Web Development》,总的来说是一本讲述如何用Javascript进行B/S架构全栈开发的书。

  该书主要讲解4种技术(框架),分为6个部分29个章节。4种技术即Node.js、MongoDB、Express、AngularJS,业内称为MEAN;6个部分我个人理解为: 基础(引言)、Node.js、MongoDB、Express、AngularJS、综合案例。29个章节看起来比较多,但每个章节都不长,全书560页,平均每个章节也就19页。

  因为Express算是Node.js的插件,Node.js算是使用javascript的服务端语言,AngularJS是前端JS比较知名的MVVM框架,MongoDB是一个很灵活的NoSQL数据库(脚本同样使用Javascript),所以说只使用Javascript就能兼顾B/S前端、后台、数据库三方面的开发。

  我个人看到AngularJS(下面简称ng)部分23章,考虑到ng已经要推2.0了,且该书ng部分感觉讲的不是很好,下面的部分可能会停滞或者直接看综合案例部分。

  本书开始来看感觉是一本应用书,但是某些部分让我觉得这本书是字典书,嗯,这不是褒义。下面我从各个部分来说明一下我对这本书的理解和建议。

引言

  引言共两章,第1章简单介绍了Web开发主要要素以及本书后面四部分技术的用途,第2章主要是Javascript基础入门。

  这部分没什么好说的,第1章全是概念、原理类的东西,可以知道该书某些部分比较非常枯燥。第2章共计22页,使用了大量的图表来说明Javascript的语法。

  我看该部分的时候基本是跳着看,建议除非JS能力比较匮乏否则还是跳着看比较好。

Node.js

  Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行的数据密集型的实时应用。(摘自百科)

  现在Node.js已经是4.3.1/5.6.0版本,而本书中还是0.10版本作为示例。

  看完本书Node.js部分后我觉得其部分设计貌似和C语言及Linux编程比较像,如文件系统部分中读写文件的标记、流的管道输送部分、子进程。部分同行可能会对其中的异步操作理解有些问题,但基本上用多了就会明白其中的好处。

  本书中的示例大部分都可以在新版本Node.js通过,其中第9章的HTTP集群我没有实现其中描述的效果,下载了源码也没有实现,这个留待以后有空研究。

MongoDB

  Mongodb,分布式文档存储数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。(摘自百科)

  这是我第一次接触NoSQL数据库,NoSQL指的是“不仅是SQL(Not Only SQL)”。使用JSON的二进制形式BSON来存储数据,因为少了SQL表结构的限制,所以比较灵活。区别于SQL的表和列,MongoDB中使用集合以及文档组织数据。

  本书的MongoDB版本同样落后,这导致一些接口不一致。如db.addUser变成了db.createUser。但是大部分表格,如用户账户的数据库角色表还是可用的。

  该部分内容除了第17章还算简单,不过我个人的看法是看的快忘的也快。第17章的高级概念估计得在实际项目中用到才能理解到位。

Express

  Express是基于 Node.js 平台,快速、开放、极简的 web 开发框架。(摘自官网)

  本书中Express也只有两章,我因为对B/S架构算是比较熟悉的,所以这里也是跳着看的。建议同样有B/S经验的同行看看模板引擎、自定义中间件部分就差不多了。

AngularJS

  AngularJS是一款优秀的前端JS框架,已经被用于Google的多款产品当中。AngularJS有着诸多特性,最为核心的是:MVVM、模块化、自动化双向数据绑定、语义化标签、依赖注入,等等。(摘自百科)

  AngularJS简称ng,个人理解ng这类MVVM框架使得前端开发变得有些像后端开发了,优点显而易见:包含模板,数据双向绑定,路由,模块化,服务,过滤器,依赖注入等所有功能,这些对于软件管理的意义都是比较大的,但是缺点也很明显,ng太笨重了,我现在下到的版本压缩后也有151KB,未压缩则有1M+。现在ng把许多模块打散分离出去用来减少核心的大小。

  本书中ng使用的是1.2版本,同样开篇就是一大堆理论,最后再介绍ng的使用。其中第20章把ng的每个设计都描述一遍,然后后面几章再详细介绍这些设计实际应该如何运用。

  现在2.0版本也快出了,虽然我还没有实际项目的使用经验,不过现在已有许多地方表示2.x较1.x改动相当大,估计2.x一些接口都与1.x不同。

综合案例

  这部分应该是本书最像应用书的部分了,该部分还没有研究,待后续补充。

总结

  本书应该算是一本不错的JS全栈书籍,从理论到实践都有。缺点是每部分开篇经常就是一大堆理论,容易让人失去兴趣,个人觉得有个“Hello world!”的开篇比较好。不过也因为这本书的理论和图表也有不少,所以也可以把本书当成一个字典工具书,当然前提是这本书中的数据还未过时;即使现在书中也有些地方过时了。个人觉得本书入门以及初级都可以看看,中级的可以当字典用用。

《Node.js+MongoDB+AngularJS Web开发》读书笔记及联想的更多相关文章

  1. Flask Web开发读书笔记

    开篇:目前想自学Flask Web开发--基于Python,找了几本书准备啃啃,同时也会分享读书笔记.希望和大家一起进步. Flask是小型框架,可以算是微框架,但是他的功能还是比较多 Flask有三 ...

  2. AngularJS + Node.js + MongoDB开发

    AngularJS + Node.js + MongoDB开发的基于位置的通讯录(by vczero) 一.闲扯 有一天班长说了,同学们希望我开发一个可以共享位置的通讯录,于是自己简单设计了下功能.包 ...

  3. Node.JS + MongoDB技术浅谈

    看到一个Node.JS + MongoDB的小样例,分享给大家.魔乐科技软件学院(www.mldnjava.cn)的讲座 Node.JS + MongoDB技术讲座          云计算 +大数据 ...

  4. ASP.NET Core Web开发学习笔记-1介绍篇

    ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...

  5. 8 步搭建 Node.js + MongoDB 项目的自动化持续集成

    任何事情超过 90 秒就应该自动化,这是程序员的终极打开方式.Automating shapes smarter future. 这篇文章中,我们通过创建一个 Node.js + MongoDB 项目 ...

  6. 用Node.JS+MongoDB搭建个人博客(安装环境)(一)

    Node.JS是什么? Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效. Nod ...

  7. 【Node.js】2.开发Node.js选择哪个IDE 开发工具呢

    安装完Node.js之后,就要为它选择一个有利的IDE用于开发. 相比较了多个IDE之后,定位在webstrom和sublime上. 有一个简单的比较: webstorm功能很丰富,前端开发工具的集大 ...

  8. 【前端】移动端Web开发学习笔记【2】 & flex布局

    上一篇:移动端Web开发学习笔记[1] meta标签 width设置的是layout viewport 的宽度 initial-scale=1.0 自带 width=device-width 最佳实践 ...

  9. 【前端】移动端Web开发学习笔记【1】

    下一篇:移动端Web开发学习笔记[2] Part 1: 两篇重要的博客 有两篇翻译过来的博客值得一看: 两个viewport的故事(第一部分) 两个viewport的故事(第二部分) 这两篇博客探讨了 ...

随机推荐

  1. vs2010 使用vs online账号 需要安装的插件

    VS10SP1-KB2662296.exe http://pan.baidu.com/s/1qWDpEG0 vs2010 需要先升级到SP1

  2. Raw-OS源代码分析之消息系统-Queue_Size

    分析的内核版本号截止到2014-04-15.基于1.05正式版.blogs会及时跟进最新版本号的内核开发进度,若源代码凝视出现"???"字样,则是未深究理解部分. Raw-OS官方 ...

  3. Navi.Soft30.开放平台.百度.开发手册

    1系统简介 1.1功能简述 现在是一个信息时代,并且正在高速发展.以前获取信息的途径非常少,可能只有电视台,收音机等有限的来源,而现在的途径数不胜数,如:QQ,微信,官方网站,个人网站等等 本开发手册 ...

  4. 【转帖】ECLIPSE-JEE-LUNA-SR2官方汉化教程

    ECLIPSE-JEE-LUNA-SR2官方汉化教程 工具/原料 Eclipse-jee-luna-SR2 步骤/方法 1.在浏览器输入网址http://www.eclipse.org/babel/d ...

  5. windows 应用商店应用笔记

    xaml http://www.cnblogs.com/free722/archive/2011/11/06/2238073.html win8 http://blog.csdn.net/ygzk12 ...

  6. swift 闭包

    闭包可以捕获和存储其所在上下文中任意常量和变量的引用. 这就是所谓的闭合并包裹着 这些常量和变量,俗称闭包. Swift标准库中提供了sort排序函数,sort函数的第二个参数是个闭包.和OC中的bl ...

  7. Gradle 脚本剪片---copy

    Gradle是以Groovy语言为基础,基于DSL语法的自动化构建工具,一个构建脚本能够包含任何Groovy语言元素,每个脚本都是UTF-8编码的文件. 6-1 Project对象API 前面我们说过 ...

  8. win7任务栏还原为xp样式

    win7的确是非常强大的操作系统,值得一提的是超级任务栏,非常新颖,不过,不是很适应win7的超级任务栏,今天,我们恢复win7超级任务栏还原xp任务栏. 方法/步骤: 1.在win7超级任务栏空白处 ...

  9. 在自己的对象里实现IEnumerator和IEnumerable

    平时工作中我们经常用foreach来迭代一个集合.比如 foreach (Student student in myClass) { Console.WriteLine(student); } 基本所 ...

  10. Node.js 的module 系统

    相较于原生的JavaScript,不同的JavaScript文件之间很难共享变量.有鉴于此,Node.js在JavaScript的基础上进行了扩充,引入了require,exports,module三 ...