標籤:
總體介紹
《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開發》讀書筆記及聯想