獲取下載鏈接
標籤
《了不起的JavaScript工程師:從前端到全端高級進階》講述了開發者使用JavaScript在各種Web開發場景下所需要掌握的重點知識和概念。從最基礎的開發工具講起,再到開發思維方式和前端頁面開發,然後擴展到小程序開發和開發工具的混合應用,再講解前後端交互最常用的網絡協議及API設計,最後講解了使用Node.js開發服務器端應用程序所需要掌握的核心概念。 《了不起的JavaScript工程師:從前端到全端高級進階》以數據鏈為線索,對重要概念進行精練的分析和對比,從而幫助讀者更好地理解和記憶。本書既包括知識技能,又包括設計思想,“道”與“術”並重,讓讀者“知行合一”,既能“坐而論道”,也能“起而行之”。 《了不起的JavaScript工程師:從前端到全端高級進階》適合初級和中級前端開發者用來提升技術水平與視野,建立較為完備的開發技能和可遷移的學習能力,幫助讀者擁有全端的技術和全局的視野,成為“了不起的JavaScript工程師”。
第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
《深入淺出 Vue.js》
本書從源碼層面分析了Vue.js。首先,簡要介紹了Vue.js;然後詳細講解了其內部核心技術“變化偵測”,這裡帶領大家從0到1實現一個簡單的“變化偵測”系統;接著詳細介紹了虛擬DOM技術,其中包括虛擬DOM的原理及其patching算法;緊接著詳細討論了模板編譯技術,其中包括模板解析器的實現原理、優...
查看詳情 →《SEO教程:搜索引擎優化入門與進階(第3版)》
本書深入剖析了搜索引擎優化的各個細節,包括關鍵字策略、URL 優化、代碼優化、圖片優化、網頁結構、網站結構、鏈接策略、搜索引擎優化誤區、常用工具介紹及服務器的選擇等。第3 版完善了搜索引擎特色算法、搜索引擎抓取策略、網頁更新策略說明、搜索引擎優化作弊新方式,新增了百度站長工具、Google 管理員工...
查看詳情 →《眾妙之門》
《眾妙之門:網站UI設計之道2》包含了知名設計網站Smashing Magazine精心準備、精心編寫以及精心編輯的內容,這些都基於Smashing Magazine讀者的建議和意願。來自全球的知務設計師無私地分享了他們多年積累的寶貴經驗。書中涵蓋了網站UI設計相關的不同的領域,覆蓋面非常廣,具有很...
查看詳情 →《寫給所有人的編程思維》
你是否曾好奇,那些神秘莫測的數字、符號和代碼背後,究竟蘊藏著怎樣的力量?其實,它們只是冰山一角。真正的“編程思維”,是一場關於創造力與解決問題的冒險,一次將抽象思想具象化的華麗舞步! 從久遠的過去到可見的未來,驅動編程語言脈搏跳動的,並非冰冷的機器指令,而是一套深植於計算機科學、邏輯與數學基石的核...
查看詳情 →