讀《深入淺出Node.js》隨感
剛開始接觸Node.js應該是在為Angular2準備本地開發環境。當時也沒多想,就把Node.js當做成一個環境依賴。直到最近朋友將一個專案原始碼發給我看了之後,徹底被神奇的Node.js程式碼給吸引住了。於是準備走進Node.js的世界領略一番。
《深入淺出Node.js》在2013年12月第1次印刷,於2017年4月第17次印刷。這是我選擇此書學習的第一個原因。其次是因為樸靈老師本身是Node.js佈道者,寫了不少文章介紹Node.js的細節,也貢獻為Node.js貢獻了不少程式碼。買書之前還特意爬了一下知乎,很多開發者也推薦本書。
全書一共11章:
- 第1章 Node簡介
- 第2章 模組機制
- 第3章 非同步I/O
- 第4章 非同步程式設計
- 第5章 記憶體控制
- 第6章 理解Buffer
- 第7章 網路程式設計
- 第8章 構建Web應用
- 第9章 玩轉程式
- 第10章 測試
- 第11章 產品化
附錄內容4部分:
- 附錄A 安裝Node
- 附錄B 除錯Node
- 附錄C Node編碼規範
- 附錄D 搭建局域NPM倉庫
從目錄可以看出來本書知識結構清晰完整配合官網文件一起學習快速上手Node.js不是一件難事。
1、為什麼選擇Node.js?
個人選擇Node.js學習的原因很大程度上是取決於其本身的特點。跨平臺、事件驅動、非阻塞式I/O、輕量、簡單、易學、高效、完整的開源生態系統。
閒話少敘,一起看程式碼:
這是官網的第一個入門Demo,也是程式設計界的明星工程——Hello World。
執行效果,如下圖:
2、接下來要發生什麼?
通過幾行編寫簡單的js程式碼,我們確實完成了一個簡單的Web工程。雖然只是很簡單的渲染了一段文字。在第一章內容中樸靈老師講述了Node.js的簡介,接著開始介紹Node.js的模組機制。
讀完第二章第一小節CommonJS規範,會明白const http = require('http');
其實是引用Node.js中的http模組。CommonJS規範幫助Node形成了良好的骨架,少了很多紛亂。模組機制還介紹了Node的模組實現、核心模組、C/C++擴充套件模組、模組呼叫棧、包與NPM、前後端共用模組。
從第三章開始到第七章開始接觸的算是比較重要的模組,不過也沒想象中的那麼複雜。如果之前有服務端語言開發經驗的開發者最好不要被那些奇怪的寫法給嚇著了,從而放棄學習。Node.js的非同步核心是事件迴圈,所以對於非同步程式設計的學習要多點耐心。掌握了之後再去學習記憶體控制、理解Buffer、網路程式設計。
網路程式設計主要介紹了構建TCP服務、UDP服務、HTTP服務、WebSocket服務和網路服務與安全。“嫁衣”終於有了大概的模樣,到了構建Web應用章節看到了那些熟悉的字眼好是親切Cookie、Session、快取、表單、頁面渲染......學完這些內容,會對以往的認知有了更加深刻的理解,也會有“原來那樣的魔法是這樣實現的”一番恍然大悟的感慨。
3、還沒有結束,故事才剛開始?
Node.js的誕生深深的影響了前端發展。因此會有讚譽聲,當然也會有一些反對聲。像Java、JavaScript、Angular、Vue、PHP等技術一樣。不過故事還長,只要不提前離場,總會領略無限風光。除了使用Node.js開發Web應用,還可以針對一些高階的開發板進行程式設計,這絕對是一件有趣的事情。當然能夠做的事情還有很多,所以請別失望。
PS:作為一位小朋友,自己從不盲目推崇某種技術。只要能夠解決特定場景下的問題,就是眼下的好技術。對於技術應常懷一顆敬畏之心。因為世上本就沒有糟糕的技術,只有濫用技術的開發者。
相關文章
- 精讀《深入淺出Node.js》Node.js
- 深入淺出 Node.js ClusterNode.js
- 淺讀-《深入淺出Nodejs》NodeJS
- 檔案隨機或順序讀寫原理深入淺出隨機
- [TEAP早期試讀]《深入淺出CoffeeScript》CoffeeScript與Node.jsNode.js
- 隨機森林演算法深入淺出隨機森林演算法
- 深入淺出node讀書筆記筆記
- 《深入淺出MySQL》讀書筆記MySql筆記
- 閱讀推薦——深入淺出Mesos
- 重讀eygle的<<深入淺出oracle>>Oracle
- 大咖說·圖書分享|深入淺出 Node.jsNode.js
- 深入淺出FE(十四)深入淺出websocketWeb
- 深入淺出Nodejs讀書筆記NodeJS筆記
- 史上最深入淺出的IT術語解讀
- 《深入淺出MFC》讀書筆記(一,二) (轉)筆記
- 讀深入淺出MFC的一節筆記 (轉)筆記
- 深入淺出——MVCMVC
- 深入淺出mongooseGo
- HTTP深入淺出HTTP
- 深入淺出IO
- 深入淺出 RabbitMQMQ
- 深入淺出PromisePromise
- ArrayList 深入淺出
- mysqldump 深入淺出MySql
- 深入淺出decorator
- 深入淺出 ZooKeeper
- 機器學習深入淺出機器學習
- 深入淺出HTTPHTTP
- http 深入淺出HTTP
- 深入淺出 ARCore
- 深入淺出 synchronizedsynchronized
- 深入淺出WebpackWeb
- 深入淺出 blockBloC
- block深入淺出BloC
- 深入淺出解讀 Spring 原始碼:IOC/AOP 篇Spring原始碼
- 《MySQL 深入淺出》 1-17章節 閱讀整理MySql
- 《MySQL深入淺出》1-17章節閱讀整理MySql
- [TEAP早期試讀]《深入淺出CoffeeScript》譯者序