Node.js:來一打 C++ 擴展

Node.js:來一打 C++ 擴展 pdf epub mobi txt 電子書 下載2025

出版者:電子工業齣版社
作者:死月
出品人:博文視點
頁數:480
译者:
出版時間:2018-6-1
價格:109
裝幀:平裝
isbn號碼:9787121336423
叢書系列:
圖書標籤:
  • Node.js
  • C++擴展
  • JavaScript
  • 計算機
  • 編程
  • C++
  • programming
  • 目前市麵上層次最深的Node.js書,秒變全端高手必讀
  • Node
  • js
  • C++
  • 擴展
  • 編程
  • 開發
  • 高性能
  • 異步
  • 迴調
  • 編譯
  • 嵌入式
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

Node.js 作為近幾年新興的一種編程運行時,托 V8 引擎的福,在作為後端服務時有比較高的運行效率,在很多場景下對於我們的日常開發足夠用瞭。不過,它還為開發者開瞭一個使用C++ 開發 Node.js 原生擴展的口子,讓開發者進行項目開發時有瞭更多的選擇。

《Node.js:來一打 C++ 擴展》以 Chrome V8 的知識作為基礎,配閤 GYP 的一些內容,將教會大傢如何使用 Node.js提供的一些 API 來編寫其 C++ 的原生擴展。此外,在後續的進階章節中,還會介紹原生抽象NAN 以及與異步相關的 libuv 知識,最後輔以幾個實例來加深理解。不過,在學習本書內容之前,希望讀者已經具備瞭初步的 Node.js 以及 C++ 基礎。

閱讀《Node.js:來一打 C++ 擴展》,相當於同時學習Chrome V8 開發、libuv 開發以及 Node.js 的原生 C++ 擴展開發知識,非常值得!

著者簡介

本書作者死月是 Node.js 核心貢獻者(Node.js Core Collaborator)之一,CNode 社區版主之一,杭州 Node Party 組織者之一,曾任大搜車無綫架構組 Node.js 團隊負責人;浙江大學工程碩士,退役 OI、ACM 選手。

圖書目錄

1 Node.js 的 C++ 擴展前驅知識儲備 1
1.1 Node.js 的模塊機製 2
1.1.1 CommonJS 的模塊規範 2
1.1.2 Node.js 的模塊 4
1.1.3 小結 9
1.1.4 參考資料 9
1.2 Node.js 的包機製 9
1.2.1 CommonJS 的包規範 9
1.2.2 Node.js / NPM 下的包 13
1.2.3 NPM 與 CNPM 16
1.2.4 小結 19
1.2.5 參考資料 19
1.3 Node.js 依賴簡介 20
1.3.1 Chrome V8 20
1.3.2 libuv 25
1.3.3 其他依賴 28
1.3.4 小結 30
1.3.5 參考資料 30
1.4 C++ 擴展開發的準備工作 31
1.4.1 編輯器 / IDE 31
1.4.2 node-gyp 36
1.4.3 其他構建工具 54
1.4.4 小結 56
1.4.5 參考資料 56
2 C++ 模塊原理簡析 57
2.1 為什麼要寫 C++ 模塊 57
2.1.1 C++ 比 JavaScript 解釋器高效 57
2.1.2 已有的 C++ 輪子 72
2.1.3 小結 77
2.1.4 參考資料 77
2.2 什麼是 C++ 擴展 78
2.2.1 C++ 模塊本質 78
2.2.2 Node.js 模塊加載原理 80
2.2.3 小結 102
2.2.4 參考資料 103
3 Chrome V8 基礎 104
3.1 Node.js 與 Chrome V8 104
3.2 基本概念 105
3.2.1 內存機製 105
3.2.2 隔離實例(Isolate) 108
3.2.3 上下文(Context) 109
3.2.4 腳本(Script) 110
3.2.5 小結 110
3.2.6 參考資料 111
3.3 句柄(Handle) 111
3.3.1 本地句柄(Local) 112
3.3.2 持久句柄(Persistent) 115
3.3.3 永生句柄(Eternal) 119
3.3.4 待實本地句柄(Maybe Local) 119
3.3.5 小結 121
3.3.6 參考資料 121
3.4 句柄作用域 121
3.4.1 一般句柄作用域(Handle Scope) 122
3.4.2 可逃句柄作用域(Escapable Handle Scope) 125
3.4.3 小結 129
3.4.4 參考資料 129
3.5 上下文(Context) 129
3.6 模闆(Template) 133
3.6.1 函數模闆(Function Template) 133
3.6.2 對象模闆(Object Template) 138
3.6.3 對象模闆的訪問器(Accessor)與攔截器(Interceptor) 144
3.6.4 對象模闆的內置字段(Internal Field) 175
3.6.5 函數模闆的繼承(Inherit) 183
3.6.6 小結 188
3.6.7 參考資料 189
3.7 常用數據類型 189
3.7.1 基值(Value) 189
3.7.2 字符串(String) 194
3.7.3 數值類型 196
3.7.4 布爾類型(Boolean) 196
3.7.5 對象(Object) 196
3.7.6 函數(Function) 200
3.7.7 數組(Array) 202
3.7.8 JSON 解析器 203
3.7.9 函數迴調信息(Function Callback Info) 203
3.7.10 函數返迴值(Return Value) 204
3.7.11 隔離實例(Isolate) 204
3.7.12 小結 205
3.7.13 參考資料 206
3.8 異常機製 206
3.8.1 try-catch 206
3.8.2 拋齣異常 209
3.8.3 異常生成類(Exception) 211
3.8.4 小結 211
3.8.5 參考資料 211
4 C++ 擴展實戰初探 212
4.1 binding.gyp 212
4.1.1 驚鴻一瞥 213
4.1.2 binding.gyp 基礎結構 213
4.1.3 GYP 文件 214
4.1.4 常用字段 221
4.1.5 小結 228
4.1.6 參考資料 228
4.2 牛刀小試 229
4.2.1 又是 Hello World 229
4.2.2 函數參數 232
4.2.3 迴調函數 234
4.2.4 函數返迴 238
4.2.5 小結 239
4.2.6 參考資料 240
4.3 循序漸進 240
4.3.1 C++ 與 JavaScript 類封裝 240
4.3.2 實例化 C++ 類封裝對象的函數 250
4.3.3 將 C++ 類封裝對象傳來傳去 253
4.3.4 進程退齣鈎子 255
4.3.5 小結 259
4.3.6 參考資料 259
5 Node.js 原生抽象——NAN 260
5.1 Node.js 原生模塊開發方式的變遷 260
5.1.1 以不變應萬變 260
5.1.2 時代在召喚 261
5.1.3 小結 267
5.1.4 參考資料 267
5.2 基礎開發 267
5.2.1 什麼是 NAN 267
5.2.2 安裝和配置 269
5.2.3 先睹為快——搭上NAN 的快車 270
5.2.4 基礎幫助函數和宏 276
5.2.5 忽略 node_modules 279
5.2.6 小結 279
5.2.7 參考資料 280
5.3 JavaScript 函數 280
5.3.1 函數參數類型 280
5.3.2 函數聲明 282
5.3.3 函數設置 288
5.3.4 小結 296
5.3.5 參考資料 296
5.4 常用幫助類與函數 296
5.4.1 句柄相關 296
5.4.2 創建數據對象 298
5.4.3 與數據對象“玩耍” 300
5.4.4 封裝一個類 314
5.4.5 異常處理 315
5.4.6 小結 315
5.4.7 參考資料 316
5.5 NAN 中的異步機製 316
5.5.1 Nan::AsyncQueueWorker 316
5.5.2 Nan::Callback 317
5.5.3 Nan::AsyncWorker 317
5.5.4 Nan::AsyncProgressWorker 323
5.5.5 小結 327
5.5.6 參考資料 327
6 異步之旅——libuv 328
6.1 基礎概念 329
6.1.1 事件循環 330
6.1.2 句柄(Handle)與請求(Request) 333
6.1.3 嘗嘗甜頭 335
6.1.4 小結 340
6.1.5 參考資料 340
6.2 libuv 的跨綫程編程基礎 341
6.2.1 libuv 的綫程 342
6.2.2 同步原語(Synchronization Primitive) 347
6.2.3 工作隊列 355
6.2.4 小結 356
6.2.5 參考資料 357
6.3 跨綫程通信 357
6.3.1 uv_async_t 句柄 357
6.3.2 Watchdog 半成品實戰解析 358
6.3.3 Watchdog 試運行 367
6.3.4 小結 368
6.3.5 參考資料 369
7 實戰——文件監視器 370
7.1 準備工作 370
7.1.1 功能規劃 370
7.1.2 文件係統監聽庫——efsw 373
7.1.3 小結 376
7.1.4 參考資料 376
7.2 核心設計 376
7.2.1 API 設計 377
7.2.2 EFSWCore 的血肉之軀 377
7.2.3 EFSWCore 的靈魂 381
7.2.4 小結 385
7.3 編寫JavaScript 類 386
7.3.1 類的設計 386
7.3.2 核心邏輯 388
7.3.3 簡單容錯 391
7.3.4 小結 393
7.4 進一步完善 393
7.4.1 C++ 代碼的完善 393
7.4.2 JavaScript 代碼的完善 398
7.4.3 小結 400
8 實戰——現有包剖析 401
8.1 字符串哈希模塊——Bling Hashes 401
8.1.1 文件設定 402
8.1.2 C++ 源碼剖析 403
8.1.3 JavaScript 源碼剖析 408
8.1.4 小結 409
8.1.5 參考資料 410
8.2 類 Proxy 包——Auto Object 410
8.2.1 Proxy 410
8.2.2 Auto Object 使用範例 412
8.2.3 代碼剖析 415
8.2.4 小結 424
8.2.5 參考資料 424
9 N-API——下一代 Node.js C++ 擴展開發方式 425
9.1 淺嘗輒止 426
9.1.1 實現一個 Echo 函數 426
9.1.2 嘗試運行 N-API 擴展 430
9.1.3 嚮下兼容 431
9.1.4 N-API Package——C++ 封裝 433
9.1.5 小結 433
9.1.6 參考資料 433
9.2 基本數據類型與錯誤處理 433
9.2.1 基本數據類型 433
9.2.2 與作用域及生命周期相關的數據類型 435
9.2.3 迴調數據類型 438
9.2.4 錯誤處理 439
9.2.5 模塊注冊 441
9.2.6 小結 442
9.2.7 參考資料 442
9.3 對象與函數 442
9.3.1 對象 442
9.3.2 函數 448
9.3.3 類的封裝 453
9.3.4 小結 455
9.3.5 參考資料 455
· · · · · · (收起)

讀後感

評分

評分

評分

評分

評分

用戶評價

评分

好書,深度超越瞭市麵上現有的所有node書。難怪說買一本頂三本:Node.js 的底層風格、 C++ 擴展編寫、Chrome V8和libuv三本書! 不虛也!

评分

好書,深度超越瞭市麵上現有的所有node書。難怪說買一本頂三本:Node.js 的底層風格、 C++ 擴展編寫、Chrome V8和libuv三本書! 不虛也!

评分

給自己打個五星,鼓勵一下自己。

评分

剛接觸C++擴展代碼編寫,書中內容從環境搭建到V8基礎等都從底層源碼開始分析講解,並整理瞭很多學習、代碼鏈接。兼顧當前主流係統。值得多讀幾遍,每次讀都可能有些新收獲。如果再有些實戰項目代碼和講解就更好瞭。帶著讀者完成幾個功能。

评分

剛接觸C++擴展代碼編寫,書中內容從環境搭建到V8基礎等都從底層源碼開始分析講解,並整理瞭很多學習、代碼鏈接。兼顧當前主流係統。值得多讀幾遍,每次讀都可能有些新收獲。如果再有些實戰項目代碼和講解就更好瞭。帶著讀者完成幾個功能。

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有