大型 JavaScript 應用最佳實踐指南 大型JavaScript应用最佳实践指南
亞當·博達哈 (Adam Boduch)
- 出版商: 電子工業
- 出版日期: 2017-01-01
- 定價: $390
- 售價: 6.7 折 $261
- 語言: 簡體中文
- 頁數: 236
- 裝訂: 平裝
- ISBN: 7121307065
- ISBN-13: 9787121307065
-
相關分類:
JavaScript
- 此書翻譯自: JavaScript at Scale
立即出貨 (庫存 < 3)
買這商品的人也買了...
-
精通 Python|運用簡單的套件進行現代運算 (Introducing Python: Modern Computing in Simple Packages)$780$616 -
完整學會 Git, GitHub, Git Server 的24堂課$360$284 -
$281第三方 JavaScript 編程 -
$390React精髓 -
$280軟技能代碼之外的生存指南 (Soft Skills : The software developer's life manual) -
Python 機器學習 (Python Machine Learning)$580$452 -
$419編寫可靠的 JavaScript 代碼 : 測試驅動開發 JavaScript 商業軟件 -
Git 團隊使用手冊 (Git for Teams: A User-Centered Approach to Creating Efficient Workflows in Git)$580$458 -
演算法技術手冊, 2/e (Algorithms in a Nutshell: A Practical Guide, 2/e)$580$458 -
$336圖解性能優化 -
$528收穫,不止 SQL 優化 — 抓住 SQL 的本質 -
$534瘋狂 HTML 5 + CSS 3 + JavaScript 講義, 2/e -
$414深入淺出 React 和 Redux -
$294React 快速上手開發 -
TensorFlow + Keras 深度學習人工智慧實務應用$590$460 -
高品質微服務|建構跨工程組織的標準化系統 (Production-Ready Microservices: Building Standardized Systems Across an Engineering Organization)$450$356 -
寫程式前就該懂的演算法 ─ 資料分析與程式設計人員必學的邏輯思考術 (Grokking Algorithms: An illustrated guide for programmers and other curious people)$390$308 -
Docker 入門與實戰, 2/e$500$395 -
7天學會大數據資料處理—NoSQL:MongoDB入門與活用, 2/e$400$312 -
$354數據建模經典教程, 2/e (Data Modeling Made Simple: A Practical Guide for Business and IT Professionals, 2/e) -
Deep Learning|用 Python 進行深度學習的基礎理論實作$580$458 -
$485JavaScript 框架設計, 2/e -
$534PHP 核心技術與最佳實踐 -
$281IT 運維之道, 2/e -
$594HikariCP 數據庫連接池實戰
中文年末書展|繁簡參展書2書75折 詳見活動內容 »
-
75折
為你寫的 Vue Components:從原子到系統,一步步用設計思維打造面面俱到的元件實戰力 (iThome 鐵人賽系列書)$780$585 -
75折
BDD in Action, 2/e (中文版)$960$720 -
75折
看不見的戰場:社群、AI 與企業資安危機$750$563 -
79折
AI 精準提問 × 高效應用:DeepSeek、ChatGPT、Claude、Gemini、Copilot 一本搞定$390$308 -
7折
超實用!Word.Excel.PowerPoint 辦公室 Office 365 省時高手必備 50招, 4/e (暢銷回饋版)$420$294 -
75折
裂縫碎光:資安數位生存戰$550$412 -
日本當代最強插畫 2025 : 150位當代最強畫師豪華作品集$640$576 -
79折
Google BI 解決方案:Looker Studio × AI 數據驅動行銷實作,完美整合 Google Analytics 4、Google Ads、ChatGPT、Gemini$630$498 -
79折
超有料 Plus!職場第一實用的 AI 工作術 - 用對 AI 工具、自動化 Agent, 讓生產力全面進化!$599$473 -
75折
從零開始學 Visual C# 2022 程式設計, 4/e (暢銷回饋版)$690$518 -
75折
Windows 11 制霸攻略:圖解 AI 與 Copilot 應用,輕鬆搞懂新手必學的 Windows 技巧$640$480 -
75折
精準駕馭 Word!論文寫作絕非難事 (好評回饋版)$480$360 -
Sam Yang 的插畫藝術:用 Procreate / PS 畫出最強男友視角 x 女孩美好日常$699$629 -
79折
AI 加持!Google Sheets 超級工作流$599$473 -
78折
想要 SSR? 快使用 Nuxt 吧!:Nuxt 讓 Vue.js 更好處理 SEO 搜尋引擎最佳化(iThome鐵人賽系列書)$780$608 -
78折
超實用!業務.總管.人資的辦公室 WORD 365 省時高手必備 50招 (第二版)$500$390 -
7折
Node-RED + YOLO + ESP32-CAM:AIoT 智慧物聯網與邊緣 AI 專題實戰$680$476 -
79折
「生成式⇄AI」:52 個零程式互動體驗,打造新世代人工智慧素養$599$473 -
7折
Windows APT Warfare:惡意程式前線戰術指南, 3/e$720$504 -
75折
我輩程式人:回顧從 Ada 到 AI 這條程式路,程式人如何改變世界的歷史與未來展望 (We, Programmers: A Chronicle of Coders from Ada to AI)$850$637 -
75折
不用自己寫!用 GitHub Copilot 搞定 LLM 應用開發$600$450 -
79折
Tensorflow 接班王者:Google JAX 深度學習又快又強大 (好評回饋版)$780$616 -
79折
GPT4 會你也會 - 共融機器人的多模態互動式情感分析 (好評回饋版)$700$553 -
79折
技術士技能檢定 電腦軟體應用丙級術科解題教本|Office 2021$460$363 -
75折
Notion 與 Notion AI 全能實戰手冊:生活、學習與職場的智慧策略 (暢銷回饋版)$560$420
相關主題
商品描述
本書將帶你設計和實現能從多個維度(如尋址能力、可配置性和性能)可伸縮的JavaScript的應用程序體系架構;瞭解常見的JavaScript縮放陷阱,並通過真實的解決方案和策略解決這些問題。內容包括:確定和評估應用程序的外部擴展影響力,創建構成大規模JavaScript應用程序的組件,對可擴展組件間的通信進行設計,設計一個不受限於環境的便攜的且可測試的應用程序,等等。
作者簡介
Adam Boduch在開發大型JavaScript應用方面有近10年的工作經驗。在轉型為前端工程師之前,他曾使用Python與Linux參與了許多大型雲計算產品的構建。
Adam擁有非常豐富的開發經驗,擅長處理複雜的場景,提高軟件的可擴展性。他編寫了很多JavaScript方面的書籍,其中包括Lo-Dash Essentials,並且,他還熱衷於優化用戶體驗和性能。
Adam現居住於多倫多,是Virtustream的一名高級軟件工程師。
關於審校者
August N. Marcello III是一位充滿激情的軟件工程師,在客戶端的Web應用架構相關的設計、實現、部署方面,有著近20年的工作經驗。
他專註於基於SaaS創造良好的用戶體驗,並將其傳播到Web生態系統,這無論從個人還是從專業角度來說都極具價值。
對新興通用技術的熱愛以及對先進的JavaScript平臺的專註,驅動著他在技術上精益求精。在工作之餘,他會參加越野跑、山地自行車騎行,或者陪伴家人和朋友。
Yogesh Singh畢業於印度JSS技術教育學院。他是一位全棧Web開發者,在服務端Web開發棧方面( ASP.NET以及Node.js)很有經驗,而且熟練掌握HTML、CSS以及JavaScript。
Yogesh熱愛JavaScript以及相關的庫和框架( Backbone、 AngularJS、jQuery和Underscore)。
他最開始從事的是數據挖掘和數據倉庫方面的工作,在數據庫開發方面十分專業。他是MSSQL的微軟認證解決方案成員(MCSA)。
Yogesh自學能力很強,喜歡學習算法和數據結構,並在斯坦福大學Coursera上獲得了算法課的結業證明。
他曾就職於OLX India和MAQ Software,目前為Gainsight公司的全棧開發者。
業餘時間,他喜歡寫博客。
Nikolay Sokolov是一名軟件工程師,他在雲計算、自動化部署和企業軟件開發方面有著豐富的經驗。現在就職於Tonomi,負責基於彈性組件模型分發雲應用的自動管理包。
Serkan Yersen是一名洛杉磯的軟件開發者。他是一些開源庫的作者,例如: ifvisible.js、underscore.py以及kwargs.js。Serkan專門從事構建大型JavaScript應用,以及為用戶廣泛的應用創建UI。
2006年至2012年,就職於網站期間,他開發了一個複雜的表單生成器,供上百萬用戶使用。現在,他就職於Home Depot和Redbeacon,負責Web應用開發。
關於譯者
本書翻譯工作由月影領銜的奇舞團翻譯小組承擔,由王韋華、黃小璐、黃薇負責翻譯。王韋華網名Aztack,前端技術專家。曾就職百度、奇虎360等國內知名因特網公司。
擁有豐富的Web前端開發經驗,擅長JavaScript、Ruby、Java、C++等語言。
黃小璐
畢業於華中科技大學計算機學院。現為奇虎360軟件開發工程師。曾參與開源項目[stcjs](高性能前端工作流系統)。參與翻譯了《高性能HTML5》等書。
黃薇
畢業於中山大學,於2013年加入奇舞團,近期參與了Nova.js(Web Component框架)、聲享(在線製作PPT)等項目,對大型JavaScript應用有濃厚的興趣和豐富的開發經驗。
以上三位譯者曾共同參與《移動Web手冊》一書的翻譯工作。
目錄大綱
1 擴展應用
影響擴展的因素
對可擴展的需要
不斷增長的用戶
添加新功能
僱傭更多的開發者
架構角度
瀏覽器是一個獨特的環境
組件設計
組件通信
加載時間
響應性
可尋址性
可配置性
架構性取捨
確定不可變內容
從開發的便捷性考慮性能
性能的可配置性
從可替換性考慮性能
可尋址性的開發便捷性
性能的可維護性
減少功能以提高可維護性
利用框架
框架與類庫
一致地實現模式
內建的性能
利用社區智慧
框架並非天生支持擴展
小結
2 可擴展性的影響因素
擴展用戶
許可證費用
訂閱費用
消耗費用
廣告支持
開源
與用戶溝通
支持機制
反饋機制
提示用戶
用戶維度
擴展用戶示例
擴展功能
應用價值
“殺手級”功能與“殺死”應用的功能
數據驅動的功能
與競品比較
修改已有的功能
支持用戶分組和角色
增加新服務
擴展功能示例
開發的可擴展性
尋找開發資源
開發職責
資源過多
擴展開發示例
影響因素檢查表
用戶檢查清單
功能清單
開發者清單
小結
3 組件組合
通用組件
模塊
路由器
模型/集合
控制器/視圖
模板
應用特定的組件
擴展通用組件
識別公用數據、功能
擴展路由器組件
擴展模型/集合
擴展控制器/視圖
將功能映射到組件
通用功能
特定功能
解構組件
維護和調試組件
重構複雜組件
可插拔的業務邏輯
擴展與配置
無狀態的業務邏輯
組織組件代碼
小結
4 組件的通信與職責
通信模型
消息傳遞模型
事件模型
通信數據結構
命名約定
數據格式
公共數據
可追蹤的組件通信
訂閱事件
全局事件日誌
事件的生命週期
通信的開銷
事件的頻率
回調函數執行時間
事件複雜度
通信責任區
後端API
Web Socket 用於更新狀態
DOM 更新
松耦合的通信
替換組件
應對意外事件
組件分層
事件流向
開發者的職責
構建代碼思維導圖
小結
5 尋址和導航
實現路由的方法
Hash URI
傳統URI
路由是如何工作的
路由的職責
路由事件
URI 的結構和模式
編碼信息
設計URI
將資源映射到URI
手動創建URI
自動生成資源
觸發路由
用戶行為
重定向用戶
路由配置
靜態路由聲明
註冊事件
禁用路由
故障排查
路由器衝突
記錄初始配置
記錄路由事件
處理非法資源的狀態
小結
6 用戶偏好和默認設置
偏好類型
地區
行為
外觀
支持地區
決定支持哪些地區
維護地區
設置地區
選擇地區
存儲地區偏好
URI中的地區
通用組件配置
選擇配置的值
存儲和硬編碼默認值
對後端的影響
加載配置值
配置行為
啟用和禁用組件
改變量量
改變順序
配置通知
行內選項
改變外觀
主題工具
選擇一個主題
單獨的樣式偏好
性能影響
可配置地區的性能
可配置行為的性能
可配置主題的性能
小結
7 加載時間和響應速度
組件構件
組件依賴
構建組件
加載組件
加載模塊
懶惰的模塊加載
模塊加載的延遲
通信瓶頸
減少間接引用
分析代碼
組件優化
維護狀態的組件
處理副作用
DOM渲染技術
API數據
加載延遲
處理大數據集
優化運行時組件
小結
8 可移植性和測試
與後端解耦
模擬後端API
前端入口
模擬工具
生成模擬數據集
執行操作
功能設計過程
設計API
實現模擬數據
實現功能
協調模擬數據與真實數據
單元測試工具
框架自帶的工具
獨立的單元測試工具
工具鍊和自動化
測試模擬場景
模擬API和測試固件
場景生成工具
端到端測試和持續集成
小結
9 縮小規模
擴展限制
文件體積
網絡帶寬
內存消耗
CPU 消耗
後端能力
互相矛盾的功能
重疊的功能
冗餘的功能
用戶需求
設計失效
多餘的組件
低效的數據處理
過度創建標記
應用組合
功能的啟動
新功能的影響
重要的庫
小結
10 處理錯誤
快速失效
使用質量約束
提供有意義的反饋
當無法快速失效時
容錯
區分關鍵行為
探測和控制錯誤行為
禁用出錯組件
優雅地降級功能
故障恢復
重試失敗操作
重啟組件
用戶手動乾涉
當我們無法從故障中恢復
性能和復雜度
異常處理
狀態檢查
通知其他組件
記錄日誌和調試
有意義的錯誤日誌
為潛在故障發出警告
通知和指導用戶
改進架構
記錄錯誤場景
改進組件分類
複雜導致出錯
小結
