久久人人做人人妻人人玩精品hd,精品国产成人av在线,好姑娘在线视频免费观看 ,含羞草电影免费看韩国,果冻传媒一区

當前位置 : 首頁  圖書 正文

Node.js:來一打 C++ 擴展簡介,目錄書摘

2020-02-03 15:27 來源:京東 作者:京東
node.js
Node.js:來一打 C++ 擴展
暫無報價
9400+評論 99%好評
編輯推薦:  目前市面上的圖書多停留在對Node.js入門知識的講解,如果想進一步提升功力,你會發(fā)現(xiàn)無書可覓,無秘籍可得!現(xiàn)在,《Node.js:來一打C++擴展》來了,正好可以滿足你的剛需——學習完本書,你可以毫無壓力地秒變?nèi)烁呤?!打通任督二脈,笑傲江湖!
  《Node.js:來一打 C++ 擴展》在深度上遠遠超過了目前市面上的Node書籍。全書自始至終圍繞一個主題展開:從介紹 Node.js 的包和模塊規(guī)范開始,深入解析(包括但不限于剖析 Node.js 自身的源碼) Node.js 的模塊是如何在運行時被引入的,尤其是如何引入 C++ 模塊的;接下來詳細講解了在什么時候、為何要編寫 C++ 模塊;借此契機,深入介紹了 Node.js 的基石 Chrome V8 和 libuv,以及異步非阻塞的原理——不僅如此,本書更教你如何在底層去駕馭它們。所以,本書以 Node.js 的 C++ 擴展為中心,衍生出對Node.js 底層風光的層層剖析,最后再回歸到如何編寫 Node.js 的 C++ 擴展,一氣呵成。讀來酣暢淋漓,痛快不已!
  買這一本書相當于買了Node.js 的底層風格、 C++ 擴展編寫、Chrome V8和libuv三本書!
  讀完本書后,你甚至能為 Node.js 自身的添磚加瓦做出非凡貢獻。

內(nèi)容簡介:  Node.js 作為近幾年新興的一種編程運行時,托 V8 引擎的福,在作為后端服務(wù)時有比較高的運行效率,在很多場景下對于我們的日常開發(fā)足夠用了。不過,它還為開發(fā)者開了一個使用C++ 開發(fā) Node.js 原生擴展的口子,讓開發(fā)者進行項目開發(fā)時有了更多的選擇。
  《Node.js:來一打 C++ 擴展》以 Chrome V8 的知識作為基礎(chǔ),配合 GYP 的一些內(nèi)容,將教會大家如何使用 Node.js提供的一些 API 來編寫其 C++ 的原生擴展。此外,在后續(xù)的進階章節(jié)中,還會介紹原生抽象NAN 以及與異步相關(guān)的 libuv 知識,最后輔以幾個實例來加深理解。不過,在學習本書內(nèi)容之前,希望讀者已經(jīng)具備了初步的 Node.js 以及 C++ 基礎(chǔ)。
  閱讀《Node.js:來一打 C++ 擴展》,相當于同時學習Chrome V8 開發(fā)、libuv 開發(fā)以及 Node.js 的原生 C++ 擴展開發(fā)知識,非常值得!
目錄:

1 Node.js 的 C++ 擴展前驅(qū)知識儲備  1

1.1 Node.js 的模塊機制  2

1.1.1 CommonJS 的模塊規(guī)范  2

1.1.2 Node.js 的模塊  4

1.1.3 小結(jié)  9

1.1.4 參考資料  9

1.2 Node.js 的包機制  9

1.2.1 CommonJS 的包規(guī)范  9

1.2.2 Node.js / NPM 下的包  13

1.2.3 NPM 與 CNPM  16

1.2.4 小結(jié)  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 小結(jié)  30

1.3.5 參考資料  30

1.4 C++ 擴展開發(fā)的準備工作  31

1.4.1 編輯器 / IDE  31

1.4.2 node-gyp  36

1.4.3 其他構(gòu)建工具  54

1.4.4 小結(jié)  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 小結(jié)  77

2.1.4 參考資料  77

2.2 什么是 C++ 擴展  78

2.2.1 C++ 模塊本質(zhì)  78

2.2.2 Node.js 模塊加載原理  80

2.2.3 小結(jié)  102

2.2.4 參考資料  103

3 Chrome V8 基礎(chǔ)  104

3.1 Node.js 與 Chrome V8  104

3.2 基本概念  105

3.2.1 內(nèi)存機制  105

3.2.2 隔離實例(Isolate)  108

3.2.3 上下文(Context)  109

3.2.4 腳本(Script)  110

3.2.5 小結(jié)  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 小結(jié)  121

3.3.6 參考資料  121

3.4 句柄作用域  121

3.4.1 一般句柄作用域(Handle Scope)  122

3.4.2 可逃句柄作用域(Escapable Handle Scope)  125

3.4.3 小結(jié)  129

3.4.4 參考資料  129

3.5 上下文(Context)  129

3.6 模板(Template)  133

3.6.1 函數(shù)模板(Function Template)  133

3.6.2 對象模板(Object Template)  138

3.6.3 對象模板的訪問器(Accessor)與攔截器(Interceptor)  144

3.6.4 對象模板的內(nèi)置字段(Internal Field)  175

3.6.5 函數(shù)模板的繼承(Inherit)  183

3.6.6 小結(jié)  188

3.6.7 參考資料  189

3.7 常用數(shù)據(jù)類型  189

3.7.1 基值(Value)  189

3.7.2 字符串(String)  194

3.7.3 數(shù)值類型  196

3.7.4 布爾類型(Boolean)  196

3.7.5 對象(Object)  196

3.7.6 函數(shù)(Function)  200

3.7.7 數(shù)組(Array)  202

3.7.8 JSON 解析器  203

3.7.9 函數(shù)回調(diào)信息(Function Callback Info)  203

3.7.10 函數(shù)返回值(Return Value)  204

3.7.11 隔離實例(Isolate)  204

3.7.12 小結(jié)  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 小結(jié)  211

3.8.5 參考資料  211

4 C++ 擴展實戰(zhàn)初探  212

4.1 binding.gyp  212

4.1.1 驚鴻一瞥  213

4.1.2 binding.gyp 基礎(chǔ)結(jié)構(gòu)  213

4.1.3 GYP 文件  214

4.1.4 常用字段  221

4.1.5 小結(jié)  228

4.1.6 參考資料  228

4.2 牛刀小試  229

4.2.1 又是 Hello World  229

4.2.2 函數(shù)參數(shù)  232

4.2.3 回調(diào)函數(shù)  234

4.2.4 函數(shù)返回  238

4.2.5 小結(jié)  239

4.2.6 參考資料  240

4.3 循序漸進  240

4.3.1 C++ 與 JavaScript 類封裝  240

4.3.2 實例化 C++ 類封裝對象的函數(shù)  250

4.3.3 將 C++ 類封裝對象傳來傳去  253

4.3.4 進程退出鉤子  255

4.3.5 小結(jié)  259

4.3.6 參考資料  259

5 Node.js 原生抽象——NAN  260

5.1 Node.js 原生模塊開發(fā)方式的變遷  260

5.1.1 以不變應(yīng)萬變  260

5.1.2 時代在召喚  261

5.1.3 小結(jié)  267

5.1.4 參考資料  267

5.2 基礎(chǔ)開發(fā)  267

5.2.1 什么是 NAN  267

5.2.2 安裝和配置  269

5.2.3 先睹為快——搭上NAN 的快車  270

5.2.4 基礎(chǔ)幫助函數(shù)和宏  276

5.2.5 忽略 node_modules  279

5.2.6 小結(jié)  279

5.2.7 參考資料  280

5.3 JavaScript 函數(shù)  280

5.3.1 函數(shù)參數(shù)類型  280

5.3.2 函數(shù)聲明  282

5.3.3 函數(shù)設(shè)置  288

5.3.4 小結(jié)  296

5.3.5 參考資料  296

5.4 常用幫助類與函數(shù)  296

5.4.1 句柄相關(guān)  296

5.4.2 創(chuàng)建數(shù)據(jù)對象  298

5.4.3 與數(shù)據(jù)對象“玩?!? 300

5.4.4 封裝一個類  314

5.4.5 異常處理  315

5.4.6 小結(jié)  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 小結(jié)  327

5.5.6 參考資料  327

6 異步之旅——libuv  328

6.1 基礎(chǔ)概念  329

6.1.1 事件循環(huán)  330

6.1.2 句柄(Handle)與請求(Request)  333

6.1.3 嘗嘗甜頭  335

6.1.4 小結(jié)  340

6.1.5 參考資料  340

6.2 libuv 的跨線程編程基礎(chǔ)  341

6.2.1 libuv 的線程  342

6.2.2 同步原語(Synchronization Primitive)  347

6.2.3 工作隊列  355

6.2.4 小結(jié)  356

6.2.5 參考資料  357

6.3 跨線程通信  357

6.3.1 uv_async_t 句柄  357

6.3.2 Watchdog 半成品實戰(zhàn)解析  358

6.3.3 Watchdog 試運行  367

6.3.4 小結(jié)  368

6.3.5 參考資料  369

7 實戰(zhàn)——文件監(jiān)視器  370

7.1 準備工作  370

7.1.1 功能規(guī)劃  370

7.1.2 文件系統(tǒng)監(jiān)聽庫——efsw  373

7.1.3 小結(jié)  376

7.1.4 參考資料  376

7.2 核心設(shè)計  376

7.2.1 API 設(shè)計  377

7.2.2 EFSWCore 的血肉之軀  377

7.2.3 EFSWCore 的靈魂  381

7.2.4 小結(jié)  385

7.3 編寫JavaScript 類  386

7.3.1 類的設(shè)計  386

7.3.2 核心邏輯  388

7.3.3 簡單容錯  391

7.3.4 小結(jié)  393

7.4 進一步完善  393

7.4.1 C++ 代碼的完善  393

7.4.2 JavaScript 代碼的完善  398

7.4.3 小結(jié)  400

8 實戰(zhàn)——現(xiàn)有包剖析  401

8.1 字符串哈希模塊——Bling Hashes  401

8.1.1 文件設(shè)定  402

8.1.2 C++ 源碼剖析  403

8.1.3 JavaScript 源碼剖析  408

8.1.4 小結(jié)  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 小結(jié)  424

8.2.5 參考資料  424

9 N-API——下一代 Node.js C++ 擴展開發(fā)方式  425

9.1 淺嘗輒止  426

9.1.1 實現(xiàn)一個 Echo 函數(shù)  426

9.1.2 嘗試運行 N-API 擴展  430

9.1.3 向下兼容  431

9.1.4 N-API Package——C++ 封裝  433

9.1.5 小結(jié)  433

9.1.6 參考資料  433

9.2 基本數(shù)據(jù)類型與錯誤處理  433

9.2.1 基本數(shù)據(jù)類型  433

9.2.2 與作用域及生命周期相關(guān)的數(shù)據(jù)類型  435

9.2.3 回調(diào)數(shù)據(jù)類型  438

9.2.4 錯誤處理  439

9.2.5 模塊注冊  441

9.2.6 小結(jié)  442

9.2.7 參考資料  442

9.3 對象與函數(shù)  442

9.3.1 對象  442

9.3.2 函數(shù)  448

9.3.3 類的封裝  453

9.3.4 小結(jié)  455

9.3.5 參考資料  455


熱門推薦文章
相關(guān)優(yōu)評榜
品類齊全,輕松購物 多倉直發(fā),極速配送 正品行貨,精致服務(wù) 天天低價,暢選無憂
購物指南
購物流程
會員介紹
生活旅行/團購
常見問題
大家電
聯(lián)系客服
配送方式
上門自提
211限時達
配送服務(wù)查詢
配送費收取標準
海外配送
支付方式
貨到付款
在線支付
分期付款
郵局匯款
公司轉(zhuǎn)賬
售后服務(wù)
售后政策
價格保護
退款說明
返修/退換貨
取消訂單
特色服務(wù)
奪寶島
DIY裝機
延保服務(wù)
京東E卡
京東通信
京東JD+