zoukankan      html  css  js  c++  java
  • 《Node.js+MongoDB+AngularJS Web开发》读书笔记及联想

    总体介绍

      《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!”的开篇比较好。不过也因为这本书的理论和图表也有不少,所以也可以把本书当成一个字典工具书,当然前提是这本书中的数据还未过时;即使现在书中也有些地方过时了。个人觉得本书入门以及初级都可以看看,中级的可以当字典用用。

  • 相关阅读:
    图像检索(image retrieval)- 11
    图像检索(image retrieval)- 10相关
    Mock.js简易教程,脱离后端独立开发,实现增删改查功能
    Azure Monitor (3) 对虚拟机磁盘设置自定义监控
    Azure Monitor (1) 概述
    Azure SQL Managed Instance (2) 备份SQL MI
    Azure Virtual Network (17) Private Link演示
    Azure Virtual Network (16) Private Link
    Azure Virtual Network (15) Service Endpoint演示
    Azure Virtual Network (14) Service Endpoint服务终结点
  • 原文地址:https://www.cnblogs.com/yaoh/p/5205538.html
Copyright © 2011-2022 走看看