編寫可維護的 JavaScript 编写可维护的JavaScript

扎卡斯 (Nicholas C. Zakas)

  • 出版商: 人民郵電
  • 出版日期: 2013-04-01
  • 定價: $330
  • 售價: 8.0$264
  • 語言: 簡體中文
  • 頁數: 226
  • 裝訂: 平裝
  • ISBN: 7115310084
  • ISBN-13: 9787115310088
  • 相關分類: JavaScript
  • 立即出貨 (庫存=1)

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

商品描述

 

<內容簡介>

任何語言都需要強調編碼風格的一致性。只要是團隊開發,每個人都以相同方式編寫代碼就是至關重要的。這樣大家才能方便地互相看懂和維護對方的代碼。
    《編寫可維護的JavaScript》向開發人員闡述瞭如何在團隊開發中編寫具備高可維護性的JavaScript代碼,書中詳細說明瞭作為團隊一分子,應該怎麼寫JavaScript。本書內容涵蓋了編碼風格、編程技巧、自動化、測試等幾方面,既包括具體風格和原則的介紹,也包括示例和技巧說明,最後還介紹瞭如何通過自動化的工具和方法來實現一致的編程風格。
    《編寫可維護的JavaScript》作者扎卡斯是頂級的Web技術專家,也是《JavaScript高級程序設計》一書的作者。他曾是Yahoo!的首席前端開發工程師,在完成了從一名「獨行俠」到「團隊精英」的蛻變後,他站在前端工程師的角度提煉出眾多的最佳編程實踐,其中包括很多業內權威所推崇的最佳法則,而這些寶貴經驗正是本書的核心內容。
    《編寫可維護的JavaScript》適合前端開發工程師、JavaScript程序員和學習JavaScript編程的讀者閱讀,也適合開發團隊負責人、項目負責人閱讀。運用本書中講述的技巧和技術,可以使JavaScript團隊編程從俠義的個人偏好的陰霾走出來,走向真正的高可維護性、高效能和高水準。

 

<作者介紹>

 
(美)扎卡斯|譯者:李晶//郭凱//張散集
    Nicholas C.Zakas,是一名前端開發顧問、作者、演講家。他在Yahoo! 供職超過5年時間。在這期間,他曾是Yahoo!首頁首席前端工程師和YUI代碼貢獻者。他著有《JavaScript高級程序設計》、《Ajax高級程序設計》和《高性能JavaScript》。

 

<章節目錄>

第一部分 編程風格 1

第1章 基本的格式化 4
1.1 縮進層級 4
1.2 語句結尾 7
1.3 行的長度 8
1.4 換行 9
1.5 空行 10
1.6 命名 11
1.6.1 變量和函數 12
1.6.2 常量 13
1.6.3 構造函數 14
1.7 直接量 15
1.7.1 字符串 15
1.7.2 數字 16
1.7.3 null 17
1.7.4 undefined 18
1.7.5 對象直接量 19
1.7.6 數組直接量 20

第2章 註釋 21
2.1 單行註釋 21
2.2 多行註釋 23
2.3 使用註釋 24
2.3.1 難於理解的代碼 25
2.3.2 可能被誤認為錯誤的代碼 26
2.3.3 瀏覽器特性hack 26
2.4 文檔註釋 27

第3章 語句和表達式 30
3.1 花括號的對齊方式 31
3.2 塊語句間隔 32
3.3 switch語句 33
3.3.1 縮進 33
3.3.2 case語句的「連續執行」 35
3.3.3 default 36
3.4 with語句 37
3.5 for循環 37
3.6 for-in循環 39

第4章 變量、函數和運算符 41
4.1 變量聲明 41
4.2 函數聲明 44
4.3 函數調用間隔 45
4.4 立即調用的函數 46
4.5 嚴格模式 47
4.6 相等 49
4.6.1 eval() 51
4.6.2 原始包裝類型 52


第二部分 編程實踐 54

第5章 UI層的松耦合 55
5.1 什麼是松耦合 56
5.2 將JavaScript從CSS中抽離 57
5.3 將CSS從JavaScript中抽離 58
5.4 將JavaScript從HTML中抽離 60
5.5 將HTML從JavaScript中抽離 62
5.5.1 方法1:從服務器加載 63
5.5.2 方法2:簡單客戶端模板 64
5.5.3 方法3:複雜客戶端模板 67

第6章 避免使用全局變量 70
6.1 全局變量帶來的問題 70
6.1.1 命名衝突 71
6.1.2 代碼的脆弱性 71
6.1.3 難以測試 72
6.2 意外的全局變量 72
避免意外的全局變量 73
6.3 單全局變量方式 74
6.3.1 命名空間 76
6.3.2 模塊 78
6.4 零全局變量 81

第7章 事件處理 83
7.1 典型用法 83
7.2 規則1:隔離應用邏輯 84
7.3 規則2:不要分發事件對象 85

第8章 避免「空比較」 88
8.1 檢測原始值 88
8.2 檢測引用值 90
8.2.1 檢測函數 92
8.2.2 檢測數組 94
8.3 檢測屬性 95

第9章 將配置數據從代碼中分離出來 98
9.1 什麼是配置數據 98
9.2 抽離配置數據 99
9.3 保存配置數據 100

第10章 拋出自定義錯誤 103
10.1 錯誤的本質 103
10.2 在JavaScript中拋出錯誤 104
10.3 拋出錯誤的好處 105
10.4 何時拋出錯誤 106
10.5 try-catch語句 107
10.6 錯誤類型 109

第11章 不是你的對象不要動 112

11.1 什麼是你的 112
11.2 原則 113
11.2.1 不覆蓋方法 113
11.2.2 不新增方法 114
11.2.3 不刪除方法 116
11.3 更好的途徑 117
11.3.1 基於對象的繼承 118
11.3.2 基於類型的繼承 119
11.3.3 門面模式 120
11.4 關於Polyfill的註解 121
11.5 阻止修改 122

第12章 瀏覽器嗅探 125
12.1 User-Agent檢測 125
12.2 特性檢測 127
12.3 避免特性推斷 129
12.4 避免瀏覽器推斷 130
12.5 應當如何取捨 134

第三部分 自動化 135

第13章 文件和目錄結構 137
13.1 最佳實踐 137
13.2 基本結構 138

第14章 Ant 143
14.1 安裝 143
14.2 配置文件 143
14.3 執行構建 145
14.4 目標操作的依賴 145
14.5 屬性 146
14.6 Buildr項目 148

第15章 校驗 149
15.1 查找文件 149
15.2 任務 150
15.3 增強的目標操作 152
15.4 其他方面的改進 153
15.5 Buildr任務 154

第16章 文件合併和加工 156
16.1 任務 156
16.2 行尾結束符 157
16.3 文件頭和文件尾 158
16.4 加工文件 159

第17章 文件精簡和壓縮 163
17.1 文件精簡 163
17.1.1 使用YUI Compressor精簡代碼 165
17.1.2 用Closure Compiler精簡 167

17.1.3 使用UglifyJS精簡 169
17.2 壓縮 170
17.2.1 運行時壓縮 171
17.2.2 構建時壓縮 171

第18章 文檔化 175
18.1 JSDoc Toolkit 175
18.2 YUI Doc 177

第19章 自動化測試 180
19.1 YUI Test Selenium引擎 180
19.1.1 配置一臺Selenium服務器 181
19.1.2 配置YUI Test Selenium引擎 181
19.1.3 使用YUI Test Selenium引擎 181
19.1.4 Ant的配置寫法 183
19.2 Yeti 184
19.3 PhantomJS 186
19.3.1 安裝及使用 186
19.3.2 Ant的配置寫法 187
19.4 JsTestDriver 188
19.4.1 安裝及使用 188
19.4.2 Ant的配置寫法 189

第20章 組裝到一起 191
20.1 被忽略的細節 191
20.2 編製打包計劃 192
20.2.1 開發版本的構建 193
20.2.2 集成版本的構建 194
20.2.3 發布版本的構建 195
20.3 使用CI系統 196
20.3.1 Jenkins 196
20.3.2 其他CI系統 199

附錄A JavaScript編碼風格指南 200
附錄B JavaScript工具集 223