狼書(卷3):Node.js高級(jí)技術(shù)
定 價(jià):108 元
- 作者:狼叔
- 出版時(shí)間:2022/11/1
- ISBN:9787121353871
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP312.8
- 頁(yè)碼:340
- 紙張:
- 版次:01
- 開本:16開
Node.js開發(fā)簡(jiǎn)單,性能極好,一經(jīng)發(fā)布便成了明星級(jí)項(xiàng)目。隨著大前端領(lǐng)域的蓬勃發(fā)展,跨平臺(tái)開發(fā)、API構(gòu)建、Web應(yīng)用開發(fā)等場(chǎng)景愈加常見,Node.js也成為大前端開發(fā)的必備“神器”。本書聚焦于Node.js高級(jí)技術(shù)。第1章介紹如何編寫npm模塊,其中涉及對(duì)許多常用模塊的解析。第2章介紹如何編寫企業(yè)級(jí)Web開發(fā)框架,主要剖析了開發(fā)框架的流程。第3章介紹如何構(gòu)建具有Node.js特色的服務(wù),著重講解了頁(yè)面即服務(wù)的概念。第4章介紹服務(wù)器部署與性能調(diào)優(yōu)的相關(guān)知識(shí)。第5章介紹TDD和BDD理念,以及如何編寫測(cè)試用例,同時(shí)分享了筆者關(guān)于開源和自學(xué)的看法;贜ode.js不斷進(jìn)階,實(shí)現(xiàn)高級(jí)應(yīng)用開發(fā)是符合技術(shù)趨勢(shì)的,也是全棧工程師必須掌握的技能。因此,各位大前端領(lǐng)域及后端領(lǐng)域的測(cè)試、運(yùn)維、軟件開發(fā)從業(yè)者都適合閱讀本書。
桑世龍,狼叔(網(wǎng)名i5ting),現(xiàn)為阿里巴巴前端技術(shù)專家,去哪兒網(wǎng)前前端架構(gòu)師,Node.js 技術(shù)布道者,領(lǐng)域頭部公眾號(hào)“Node全!边\(yùn)營(yíng)者。曾就職于多家知名IT企業(yè),從事前端開發(fā)、后端開發(fā)、數(shù)據(jù)分析等工作,目前負(fù)責(zé)公司內(nèi)的Node.js開發(fā)和基礎(chǔ)框架開發(fā)工作。
第1章 自己動(dòng)手寫npm模塊 1
1.1 基礎(chǔ)技能 1
1.1.1 環(huán)境變量 2
1.1.2 Zsh 2
1.1.3 Vim 3
1.1.4 Ack 4
1.1.5 Autojump 5
1.1.6 Git和GitHub 5
1.1.7 查詢文檔 6
1.2 編寫Node.js模塊 6
1.2.1 初始化模塊 6
1.2.2 普通模塊 7
1.2.3 二進(jìn)制模塊 9
1.3 npm技巧 13
1.3.1 npm run 13
1.3.2 配置 13
1.3.3 鉤子 15
1.3.4 npm link 16
1.3.5 自定義安裝 16
1.3.6 模塊瘦身 17
1.3.7 postinstall 17
1.3.8 路徑 18
1.3.9 模塊依賴圖 20
1.4 實(shí)例講解 22
1.4.1 kp 22
1.4.2 je 27
1.4.3 lazyclone 30
1.5 編寫腳手架 31
1.5.1 初始化模塊 32
1.5.2 CLI二進(jìn)制模塊 32
1.5.3 使用模板引擎 34
1.5.4 解析CLI參數(shù)和路徑 35
1.5.5 npm發(fā)布 40
1.6 開源周邊 40
1.6.1 持續(xù)集成 40
1.6.2 測(cè)試覆蓋率 45
1.6.3 徽章 45
1.6.4 反向?qū)W習(xí) 46
1.7 推薦模塊 46
1.7.1 debug 47
1.7.2 GitBook 48
1.7.3 colors和chalk 49
1.7.4 mkdirp 50
1.7.5 shelljs 50
1.7.6 moment 51
1.7.7 LRU緩存 52
1.7.8 semver 53
1.7.9 xtend 55
1.7.10 require-directory 56
1.7.11 yargs 57
1.8 本章小結(jié) 59
第2章 自己動(dòng)手編寫企業(yè)級(jí)Web開發(fā)框架 60
2.1 特色Web框架 60
2.1.1 LoopBack 61
2.1.2 Nest 63
2.1.3 ThinkJS 66
2.1.4 Egg.js 69
2.1.5 Next.js 70
2.1.6 Redwood 72
2.1.7 strapi 76
2.2 自己動(dòng)手寫框架 78
2.2.1 基礎(chǔ)知識(shí) 78
2.2.2 生成項(xiàng)目 81
2.2.3 添加Mongoose 91
2.2.4 添加MVC目錄 96
2.2.5 庖丁解Views 103
2.2.6 腳手架 112
2.2.7 靜態(tài)API模擬 114
2.2.8 更多實(shí)踐 122
2.3 本章小結(jié) 127
第3章 構(gòu)建具有Node.js特色的服務(wù) 128
3.1 服務(wù)概覽 128
3.1.1 架構(gòu)演變 128
3.1.2 從大而全到小而美 129
3.1.3 微服務(wù)應(yīng)用 131
3.1.4 BFF中間層 134
3.1.5 SFF托管 137
3.2 使用Node.js優(yōu)化頁(yè)面渲染 140
3.2.1 BigPipe 140
3.2.2 服務(wù)器端渲染(SSR) 150
3.2.3 漸進(jìn)式Web應(yīng)用(PWA) 153
3.2.4 同構(gòu)開發(fā) 158
3.3 頁(yè)面即服務(wù) 162
3.3.1 頁(yè)面獨(dú)立 162
3.3.2 模塊拆分 164
3.3.3 BigView 165
3.3.4 API Proxy 175
3.3.5 源碼說明 176
3.4 使用Node.js開發(fā)RPC服務(wù) 178
3.4.1 RPC原理 178
3.4.2 通信層協(xié)議設(shè)計(jì) 179
3.4.3 如何實(shí)現(xiàn)RPC通信協(xié)議 180
3.4.4 DNode 181
3.4.5 Senaca 182
3.4.6 Moleculer 185
3.4.7 通用RPC 189
3.4.8 服務(wù)發(fā)現(xiàn)與治理 190
3.4.9 典型用法 192
3.5 使用Node.js開發(fā)獨(dú)立的API層 193
3.5.1 GraphQL 193
3.5.2 Micro框架 197
3.5.3 API網(wǎng)關(guān) 197
3.5.4 在線服務(wù) 199
3.6 本章小結(jié) 199
第4章 服務(wù)器部署與性能調(diào)優(yōu) 200
4.1 服務(wù)器部署 200
4.1.1 服務(wù)器選購(gòu) 201
4.1.2 手動(dòng)部署 204
4.1.3 通過Docker部署 211
4.1.4 自動(dòng)部署 224
4.1.5 APM與監(jiān)控 231
4.2 性能調(diào)優(yōu) 239
4.2.1 基礎(chǔ)知識(shí) 239
4.2.2 立體分析 246
4.2.3 深度性能調(diào)優(yōu) 250
4.3 分析Easy-monitor 260
4.4 本章小結(jié) 262
第5章 測(cè)試、開源與自學(xué) 263
5.1 測(cè)試入門 264
5.1.1 什么是測(cè)試 264
5.1.2 TDD和BDD 265
5.1.3 最小化問題 268
5.1.4 Baretest 269
5.1.5 TAP和Tape 271
5.1.6 Mocha 274
5.1.7 Jest 278
5.2 測(cè)試進(jìn)階 283
5.2.1 測(cè)試的好處 283
5.2.2 紅到綠工作流 284
5.2.3 Cucumber 285
5.2.4 Spy、Stub和Mock 288
5.2.5 持續(xù)集成 291
5.2.6 如何編寫測(cè)試框架 292
5.2.7 如何打造開源項(xiàng)目 293
5.2.8 進(jìn)一步學(xué)習(xí)TypeScript 294
5.3 開源帶來的機(jī)會(huì)和思考 310
5.3.1 Clipanion 310
5.3.2 機(jī)會(huì)與挑戰(zhàn) 312
5.3.3 敏感且會(huì)學(xué) 313
5.3.4 成就更好的自己 313
5.4 本章小結(jié) 314