总体介绍

  《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. JAVA常见错误处理方法 和 JVM内存结构

    OutOfMemoryError在开发过程中是司空见惯的,遇到这个错误,新手程序员都知道从两个方面入手来解决:一是排查程序是否有BUG导致内存泄漏:二是调整JVM启动参数增大内存.OutOfMemor ...

  2. [转载] Redis 起步

    转载地址:http://www.cnblogs.com/shanyou/archive/2012/01/28/2330451.html Rdis和JQuery一样是纯粹为应用而产生的,这里记录的是在C ...

  3. ECSHOP安装百度编辑UEditor教程

    ECSHOP系统自带的编辑器大家用过都知道,难用不说,还不能批量上传图片.很多朋友都喜欢百度编辑器,因为百度编辑器功能强大,使用方便,而且不会生成太多多余代码.网上有许多ECSHOP整合百度编辑器的教 ...

  4. 怎么删除github上的仓库

    1.到你的个人中心.点击你的个人账号.下图的红色部分 2.点击repositories(仓库),选择你要删除的项目 3.code这一行导航栏 最后的一个. setting 4.下拉页面到最下面 Del ...

  5. FFRPC应用之Client/Server

    摘要: Ffrpc 进行了重构,精简了代码,代码更加清晰简洁,几乎完美的达到了我的预想.接下来将写几遍文章来介绍ffrpc可以做什么.简单总结ffrpc的特性是: Ffrpc是c++ 网络通信库 全异 ...

  6. 修改windows密码后ssrs报错

    昨夜修改了windows的登录密码,第二日发现ssrs全部无法访问.显示filenotfound等错误.细想一下,应该是修改了windows的密码导致ssrs权限验证失败. 因此将ssrs的服务帐号修 ...

  7. getRequestURI,getRequestURL的区别

    转自:http://www.cnblogs.com/JemBai/archive/2010/11/10/1873764.html test1.jsp======================= &l ...

  8. android dalvik heap 浅析

    android 系统中可以在/system/build.prop中配置dalvik堆的有关设定.具体设定由如下三个属性来控制 -dalvik.vm.heapstartsize  堆分配的初始大小,调整 ...

  9. UIWebView 操作

    网络开发中,当公司已经使用 HTML5 技术实现同时适应 Android 和 iOS 等多个平台的网页时,这时往往需要我们 iOS 平台能够嵌入网页并进行各种交互,那我们应该怎么做来实现这种需求呢? ...

  10. Linux Ubuntu搭建git服务器

    1. 安装 openssh-server ,用于创建SSH服务. sudo apt-get install openssl-server 使用命令ps -e|grep ssh,查看ssh服务是否启动. ...