學習資源:
閒暇之餘又找了幾篇node.js的參考資料
- Node.js - 纪争光 - 博客频道 - CSDN.NET
- [NodeJS] 第一次 node 就上手
- [NodeJS] 第一次 Node 就上手 Part 2
- Node & js 學習筆記 | Facebook社團
- node.js 基本教學 | DreamersLab
- [Node.js]讓 NodeJS 程式 永遠不停止 - forever @ 賽拉維的秋天 :: 痞客邦 PIXNET
- Learning Node.js - 基本 Http Server 建置 « Excelsior
- Jollen's Blog :: Node.js & RESTful所有文章
- 用node.js寫一個BBS出來吧! | 電腦故我在
- [Node.js]利用Node.js建立http server | 佛祖球球
- 知識過客: Node.js
找到一個node.js的投影片,旁邊還有幾個投影片可以看
關於NPM
12/15依賴注入Dependency Injection pattern
- Inversion of Control Containers and the Dependency Injection pattern (聽說是經典,但很多中國人不推,所以先pass)
- 依赖注入的概念 - 一只博客 - 51CTO技术博客
- 深度理解依賴注入(Dependence Injection) - EagleFish(邢瑜琨) - 博客園
- 控制反轉(IoC)與依賴注入(DI) - 子孑- 51CTO技術博客
- Xian's 學習筆記: IOC 控制反轉 & DI 依賴注入
JavaScript
node.js的non-blocking
node.js的non-blocking
- Loop in Non-Block | Opennodes
- 閱讀者: Node.js 伺服端事件驅動非阻斷式平台
- Node.js學習筆記三:Blocking與Non-blocking的思考 - iT邦幫忙::IT知識分享社群
- 探討 Node.js 的非同步機制 | Fred's blog
- Node.js: The Style of Non-Blocking | hueniverse
- How the single threaded non blocking IO model works in Node.js - Stack Overflow
學習開始:
學習從Node入門 » 行為驅動執行開始,這節很短瞬間讀完,在此摘錄核心
- 就像這樣,我們傳遞一個東西,然後伺服器利用這個東西來完成一些事。嗨~那個叫路由的東西,能幫我把這個路由一下嗎?但是伺服器其實不需要這樣的東西。它只需要把事情做完就行,其實為了把事情做完,你根本不需要東西,你需要的是動作。也就是說,你不需要名詞,你需要動詞。
此外他推薦了這篇文章來探討一些名詞真正的意義,在此先行備份
接著閱讀Node入門 » 路由給真正的請求處理程序這篇,一開始看到這句話就覺得不錯值得摘錄
- 路由,顧名思義,是指我們要針對不同的URL有不同的處理方式。例如處理/start的 "業務邏輯" 就應該和處理/upload的不同。
在這篇介紹了requestHandlers,最早聽到request Handler是在Node.js 入門, #1:Hello World、Node.js 入門, #3:URL Routing 觀念與實作這兩篇文章,在看到上面的擷取文字後,對Request Handler的理解又更清晰了,你有不同的request要相對應到不同的處理方式,所以你要有個handler來幫你做,哪個request要相對應到哪個response。
接著,看到一個沒見過的關鍵字,依賴注入Dependency Injection pattern。找了幾篇文章放在學習資源那邊,尚未讀先繼續瀏覽這篇文章發現,Dependency Injection pattern似乎不是好的解決辦法,較妥當的辦法是associative array關聯陣列,接著他推薦了Advanced Web Applications With Object-Oriented JavaScript這篇文章 (尚未閱讀),並摘錄了下面這段重要的文字
接著,看到一個沒見過的關鍵字,依賴注入Dependency Injection pattern。找了幾篇文章放在學習資源那邊,尚未讀先繼續瀏覽這篇文章發現,Dependency Injection pattern似乎不是好的解決辦法,較妥當的辦法是associative array關聯陣列,接著他推薦了Advanced Web Applications With Object-Oriented JavaScript這篇文章 (尚未閱讀),並摘錄了下面這段重要的文字
- 在C++或C#中,當我們談到物件,指的是類別(Class)或者結構體(Struct)的實體。物件根據他們實體化的範本(就是所謂的類別),會擁有不同的屬性和方法。但在JavaScript裡物件不是這個概念。在JavaScript中,物件就是一個鍵/值對的集合 -- 你可以把JavaScript的物件想象成一個鍵為字串類型的字典。
在實作時遇到typeof,老實說很少用這個,於是辜狗閱讀淺談類型判斷 in JavaScript - Aar0n Huang這篇,發現typeof在實作時很容易出現問題,又另外辜狗了JavaScript教學 - 資料型態(Data Type) - 上 @ 小殘的程式光廊 、JavaScript Garden | typeof 操作符,我喜歡JavaScript Garden 裡關於class與type的圖表,清楚解釋typeof在實作時容易遇到的問題,大都顯示為object,從這表中取得我們要的,當value為new Function("")時,它的class是Function,type也是function,有了這些基礎後看懂了router.js的code,終於實作成功request handler。
接著閱讀Node入門 » 讓請求處理程序作出回應,這節內容超短,很快就讀完,主線紀錄,換個口味學點別的支線請見20141215 socket. io 基礎,已實作完成支線任務,下一個目標是把支線任務的內容模組化。
(以下內容2014/12/17新增)
接著學習Node入門 » 不好的實現方式這節,稍微略讀後,為了避免不好的coding習慣,決定不實作這節,絕對有必要實作這節,non-blocking是個重要的觀念,需要再多讀幾篇資料。
在此節錄重要觀念
接著閱讀Node入門 » 讓請求處理程序作出回應,這節內容超短,很快就讀完,主線紀錄,換個口味學點別的支線請見20141215 socket. io 基礎,已實作完成支線任務,下一個目標是把支線任務的內容模組化。
(以下內容2014/12/17新增)
接著學習Node入門 » 不好的實現方式這節,稍微略讀後,為了避免不好的coding習慣,
在此節錄重要觀念
- Node.js是單執行緒的。它透過事件輪詢(event loop)來實現並行操作,對此,我們應該要充分利用這一點 —— 盡可能的避免Blocking操作,取而代之,多使用Non-Blocking操作。
然而,要用Non-Blocking操作,我們需要使用回呼(callback),透過將函數作為參數傳遞給其他需要花時間做處理的函數(比方說,休眠10秒,或者查詢資料庫,又或者是進行大量的計算)。
(以上內容2014/12/17新增)
沒有留言:
張貼留言