了不起的 JavaScript 工程師:從前端到全端高級進階

朱德龍

  • 出版商: 電子工業
  • 出版日期: 2019-08-01
  • 定價: $474
  • 售價: 8.5$403
  • 語言: 簡體中文
  • ISBN: 7121371294
  • ISBN-13: 9787121371295
  • 相關分類: JavaScript

下單後立即進貨 (約4週~6週)

買這商品的人也買了...

相關主題

商品描述

本書講述了開發者使用JavaScript在各種Web開發場景下所需要掌握的重點知識和概念。從最基礎的開發工具講起,再到開發思維方式和前端頁面開發,然後擴展到小程序開發和開發工具的混合應用,再講解前後端交互最常用的網絡協議及API設計,最後講解了使用Node.js開發服務器端應用程序所需要掌握的核心概念。全書以數據鏈為線索,對重要概念進行精練的分析和對比,從而幫助讀者更好地理解和記憶。本書既包括知識技能,又包括設計思想,“道”與“術”並重,讓讀者“知行合一”,既能“坐而論道”,也能“起而行之”。

作者簡介

多年web開發經驗,熟悉前後端開發以及Docker容器技術,喜歡前端,熱愛JavaScript。“開發者頭條”top10專欄作者。“慕課網”認證作者、精英講師。2次擔任w3ctech長沙分享會主講嘉賓。中科院人才中心評審委員會認證軟件工程師CNCF認證CKA
 

目錄大綱

第1章開發環境1 
1.1代碼編寫工具2 
1.1.1 IDE 2 
1.1.2編輯器3 
1.1.3最佳選擇3 
1.2 Docker容器5 
1.2.1 Docker概述5 
1.2.2 Docker重要概念6 
1.2.3 Docker使用場景11 
1.2.4 Docker擴展15 
1.3代碼管理15 
1.3.1什麼是代碼倉庫16 
1.3.2版本管理的意義16 
1.3.3版本管理的常用操作16 
1.3.4分支管理的意義17 
1.3.5分支管理的常用操作17 
1.3.6分支管理流程18 
1.4其他軟件23 
1.4.1文件夾管理軟件23 
1.4.2快速搜索工具24
1.4.3終端管理軟件25 
1.4.4 Chrome中的插件25 
1.5硬件提升26 
1.5.1提升程序運行速度26 
1.5.2減少程序切換時間27 
1.6小結28 
第2章Web頁面與多頁應用29 
2.1 Web頁面的運行環境——瀏覽器29 
2.1.1渲染引擎30 
2.1.2 JavaScript引擎38 
2.1.3數據持久層40 
2.2 HTML 41 
2.3模板42 
2.3.1模板的意義42 
2.3.2常用模板分類42 
2.3. 3模板的重要功能42 
2.4 CSS盒模型45 
2.5 CSS 46 
2.6 CSS佈局47 
2.6.1普通文檔流47 
2.6.2浮動57 
2.6.3定位61 
2.6.4彈性盒模型62 
2.7 CSS預處理68 
2.7.1預處理的意義68 
2.7.2預處理的重要功能69 
2.7.3樣式文件規劃72 
2.7.4樣式類命名73 
2.8 JavaScript 77
2.8.1實現功能邏輯77 
2.8.2操作頁面或瀏覽器78 
2.8.3進行網絡通信79 
2.8.4第三方JavaScript庫——jQuery 84 
2.8.5 JavaScript簡史84 
2.9自動化構建工具85 
2.9.1自動化構建工具的作用85 
2.9.2常用的自動化構建工具85 
2.10小結86 
第3章高效編寫/組織代碼的心法87 
3.1拆分方式89 
3.1.1按文件類型拆分89 
3.1.2按功能類型拆分90 
3.1.3按關注點拆分90 
3.2抽象原則91 
3.2.1第一原則:DRY 91 
3.2.2第二原則:YAGNI 92 
3.2.3第三原則:The Rule of Three 93 
3.3不止於代碼94 
3.4小結94 
第4章模塊96 
4.1模塊的意義96 
4.2 ECMAScript 5中的模塊96 
4.2.1立即執行函數表達式(Immediately-Invoked Function Expression) 97 
4.2.2顯式模塊聲明97
4.2.3異步模塊定義98 
4.2.4共同模塊定義99 
4.2.5 CommonJS 100 
4.2.6通用模塊定義101 
4.3 ECMAScript 6中的模塊102 
4.4模塊打包工具103 
4.5小結107 
第5章單頁應用(SPA) 108 
5.1框架109 
5.2視圖與數據110 
5.2.1雙向數據綁定111 
5.2.2單向數據流115 
5.3路由116 
5.3.1 hash 116 
5.3.2 history 117 
5.4組件119 
5.4.1原生組件119 
5.4.2第三方組件121 
5.5小結123 
第6章JavaScript的幾個趨勢124 
6.1接口與數據類型125 
6.2更好的異步解決方案127 
6.3面向對象與類132 
6.3.1封裝132 
6.3.2繼承134 
6.3.3多態135 
6.4模塊化138 
6.5小結141 
第7章小程序概述142
7.1常見的App 142 
7.2 JavaScript開發者的一雙翅膀143 
7.3小程序的發展144 
7.4小結144 
第8章小程序與Web頁面145 
8.1 WXML 145 
8.1.1 WXML與HTML的相同之處145 
8.1.2 WXML與HTML的不同之處146 
8.2 WXSS 149 
8.2.1 WXSS與CSS的相同點149 
8.2.2 WXSS與CSS的不同點149 
8.3 JavaScript與WXS 155 
8.4 JSON 155 
8.4.1 app.json 155 
8.4.2 project.config .json 156 
8.4.3 page.json 157 
8.4.4 component.json 158 
8.5小結158 

第9章小程序與單頁應用159 
9.1路由159 
9.1.1路由配置159 
9.1.2路由跳轉160 
9.1.3路由監聽161 
9.2組件162 
9.2.1組件與頁面162 
9.2.2小程序組件與單頁應用組件164
9.3 web-view 165 
9.3.1作用165 
9.3.2交互165 
9.4小結165 
第10章小程序的框架與插件166 
10.1 RxWX 166 
10.2 WePY 168 
10.3 mpvue 171 
10.4 Taro 171 
10.5小結171 
第11章小程序的開發工具與發布173 
11.1開發者工具組成173 
11.1.1模擬器174 
11.1.2調試器174 
11.1.3編輯器176 
11.1.4其他功能176 
11.2發布流程177 
11.2.1小程序的版本177 
11.2.2用戶身份與權限178 
11.3小結178 
第12章其他混合應用簡介180 
12.1流應用180 
12.2桌面應用181 
12.3小結182 
第13章HTTP協議與Web網站183 
13.1 HTTP的歷史183 
13.2 HTTP的通信方式183 
13.3 HTTP的狀態184 
13.4小結184
第14章HTTP協議內容185 
14.1請求行/狀態行186 
14.1.1 URL 186 
14.1.2請求方法188 
14.1.3狀態碼/狀態信息188 
14.2頭部192 
14.2.1通用頭部字段192 
14.2.2請求頭部字段194 
14.2.3響應頭部字段196 
14.2.4主體頭部字段196 
14.2.5其他頭部字段197 
14.3主體198 
14.4 Cookie 199 
14.4.1 Cookie的分類199 
14.4.2 Cookie的使用199 
14.4. 3 Cookie的缺陷200 
14.4.4 Cookie與存儲201 
14.5 Cookie與狀態204 
14.5.1狀態存儲205 
14.5.2狀態獲取207 
14.5.3基於token的認證方式更好207 
14.6小結208 
第15章HTTP請求優化209 
15.1減少連接/請求數209 
15.1.1減少請求209 
15.1.2減少連接210 
15.2緩存數據210
15.3減少傳輸數據量210 
15.4優化網絡鏈路210 
15.4.1減少域名211 
15.4.2使用CDN 211 
15.5小結211 
第16章HTTP/2協議212 
16.1多路復用212 
16.2壓縮214 
16.3支持TLS 215 
16.4應用層協議協商215 
16.5服務器端推送215 
16.6流控制216 
16.7小結216 
第17章HTTPS協議217 
17.1 HTTP的缺點217 
17.1.1通信使用明文217 
17.1.2不驗證通信方身份218 
17.1.3無法證明報文的完整性218 
17.2理解HTTPS 219 
17.2.1 HTTPS通信流程219 
17.2.2密碼學基礎221 
17.2.3摘要與簽名221 
17.2.4 X.509與證書222 
17.3小結223 
第18章WebSocket協議224 
18.1 WebSocket與HTTP 224 
18.2 WebSocket的使用224
18.2.1客戶端225 
18.2.2服務器端226 
18.3小結227 
第19章API 228 
19.1 REST 228 
19.1.1 REST API設計228 
19.1.2 REST API工具230 
19.2 GraphQL 231 
19.2.1 GraphQL設計232 
19.2.2 GraphQL工具234 
19.3小結235 
第20章Node.js概述237 
20.1為什麼要學習Node.js 237 
20.2什麼是Node.js 238 
20.3 Node.js的歷史239 
20.4 Node.js的結構240 
20.5 Node.js的運行機制241 
20.5.1單線程241 
20.5.2事件循環242 
20.6學習Node.js的三個挑戰244 
20.6.1 I/O回調244 
20.6.2代碼性能244 
20.6.3多進程協作245 
20.7小結245 
第21章用Node.js編寫Web服務器端246 
21.1處理請求246
21.1.1創建服務器端246 
21.1.2解析請求247 
21.2響應結果250 
21.2.1狀態信息250 
21.2.2響應頭部251 
21.2.3響應主體251 
21.3路由解析253 
21.4 I/O操作260 
21.4.1文件260 
21.4.2數據庫264 
21.4.3網絡請求267 
21.5 Web框架270 
21.5.1 Express 271 
21.5.2 Koa 271 
21.6小結271 
第22章Node.js內存控制273 
22.1內存限制273 
22.2內存管理276 
22.2.1內存分配276 
22.2.2內存回收276 
22.3內存洩漏277 
22.3.1緩存277 
22.3.2不斷增長的數組279 
22.3.3重複的事件監聽279 
22.4大內存處理281 
22.5小結283 
第23章Node.js多進程284 
23.1 PM2模塊284
23.1.1安裝與使用285 
23.1.2進程通信286 
23.1.3進程管理287 
23.2 cluster模塊290 
23.2.1基本使用291 
23.2.2進程通信294 
23.2.3進程管理294 
23.3 child_process模塊298 
23.3.1基本使用298 
23.3.2進程通信298 
23.3.3進程管理302 
23.4 worker_threads模塊303 
23.4.1基本使用303 
23.4.2線程通信304 
23.4.3線程管理305 
23.5小結306 
第24章Node.js調試與測試307 
24.1開發工具307 
24.2調試工具307 
24.2.1 debug模塊308 
24.2.2 Node Inspector 309 
24.3單元測試312 
24.3.1單元測試的意義312 
24.3.2單元測試代碼編寫原則312 
24.3.3測試框架314 
24.3.4測試風格316 
24.3.5測試指標317
24.4 小結 319 ㄒ