最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

編寫可靠的JavaScript代碼:測試驅動開發(fā)JavaScript商業(yè)軟件

編寫可靠的JavaScript代碼下載

  • 書籍大?。?span>102MB
  • 書籍語言:簡體中文
  • 書籍類型:國產軟件
  • 書籍授權:免費軟件
  • 書籍類別:javascript電子書
  • 應用平臺:PDF
  • 更新時間:2018-07-05
  • 網友評分:
360通過 騰訊通過 金山通過

情介紹

《編寫可靠的JavaScript代碼 測試驅動開發(fā)JavaScript商業(yè)軟件》分為5個部分:

第Ⅰ部分“奠定堅實的基礎”涵蓋了軟件工程的關鍵概念,例如SOLID和DRY原

則,還討論了單元測試和測試驅動開發(fā)的優(yōu)點。

在第Ⅱ部分“測試基于模式的代碼”中,我們描述并使用測試驅動開發(fā)創(chuàng)建了

幾個有用的代碼模式。

第Ⅲ部分“測試和編寫高級JavaScript特性”描述了如何使用和測試

JavaScript語言更高級的特性。

第Ⅳ部分“測試中的特殊主題”提供了測試DOM操作的樣例,還演示了用于增強代碼標準的靜態(tài)分析工具的使用。

第Ⅴ部分“總結”回顧了測試驅動開發(fā)的概念,還展示了一些本書用到的JavaScript習語。

目錄

第Ⅰ部分 奠定堅實的基礎
第1章 實踐軟件工程 3
1.1 編寫從開始就正確的代碼 4
1.1.1 掌握JavaScript的特性 4
1.1.2 在大型系統(tǒng)中規(guī)避JavaScript陷阱 15
1.1.3 應用軟件工程原則 17
1.2 編寫保持正確的代碼 22
1.2.1 投資單元測試的未來 22
1.2.2 實踐測試驅動開發(fā) 22
1.2.3 編寫易于測試的代碼 23
1.3 小結 26
第2章 準備工具 27
2.1 使用測試框架 27
2.1.1 辨別不正確的代碼 30
2.1.2 可測試性設計 32
2.1.3 編寫最少的代碼 33
2.1.4 安全維護和重構 33
2.1.5 可運行規(guī)范 34
2.1.6 當前的開源和商業(yè)框架 34
2.1.7 介紹Jasmine 36
2.2 使用依賴注入框架 41
2.2.1 依賴注入的定義 41
2.2.2 使用依賴注入讓代碼更可靠 43
2.2.3 掌握依賴注入 43
2.2.4 案例研究:編寫一個輕量級依賴注入框架 43
2.2.5 使用依賴注入框架 50
2.2.6 當前的依賴注入框架 52
2.3 使用切面工具 53
2.3.1 案例研究:使用和不使用AOP進行緩存 53
2.3.2 案例研究:構建Aop.js模塊 55
2.3.3 其他AOP庫 67
2.3.4 結論 68
2.4 使用代碼檢查工具 68
2.4.1 使用linting工具讓代碼更可靠 68
2.4.2 JSHint簡介 71
2.4.3 其他工具 73
2.4.4 嚴格模式 74
2.5 小結 74
第3章 構造可靠的對象 75
3.1 使用原生數(shù)據(jù) 75
3.2 使用對象字面量 77
3.3 使用模塊模式 78
3.3.1 創(chuàng)建任意模塊 78
3.3.2 創(chuàng)建立即執(zhí)行模塊 79
3.3.3 創(chuàng)建可靠的模塊 80
3.4 使用對象原型和原型繼承 80
3.4.1 默認對象原型 80
3.4.2 原型繼承 81
3.4.3 原型鏈 82
3.5 使用new創(chuàng)建對象 83
3.6 使用類繼承 88
3.6.1 模擬類繼承 88
3.6.2 重復將殺死Kangaroo 89
3.7 使用函數(shù)式繼承 91
3.8 猴子補丁(Monkey-Patching) 92
3.9 小結 95
第Ⅱ部分 測試基于模式的代碼
第4章 瀏覽各種模式的優(yōu)點 99
4.1 案例分析 99
4.2 通過更廣泛的詞匯產生更加優(yōu)雅的代碼 100
4.3 使用擁有良好設計、良好測試的構建塊產生可靠的代碼 101
4.4 小結 102
第5章 確?;卣{模式的正確使用 103
5.1 通過單元測試了解回調模式 104
5.1.1 編寫和測試使用了回調函數(shù)的代碼 104
5.1.2 編寫和測試回調函數(shù) 109
5.2 避免問題 113
5.2.1 扁平化回調箭頭 113
5.2.2 注意this變量 115
5.3 小結 119
第6章 確保承諾模式的正確使用 121
6.1 通過單元測試了解承諾 122
6.1.1 使用承諾 122
6.1.2 構造和返回承諾 127
6.1.3 測試XMLHttpRequest 130
6.2 串聯(lián)承諾 133
6.3 使用承諾封裝器 134
6.4 了解狀態(tài)和命運 135
6.5 區(qū)分標準承諾和jQuery承諾 135
6.6 小結 136
第7章 確保正確使用散函數(shù)應用程序 137
7.1 對散函數(shù)應用程序進行單元測試 137
7.2 為散函數(shù)應用程序創(chuàng)建切面 139
7.3 區(qū)分散函數(shù)應用程序和柯里化 140
7.3.1 柯里化 140
7.3.2 散函數(shù)應用程序 141
7.4 小結 141
第8章 確保備忘錄模式的正確使用 143
8.1 通過單元測試了解備忘錄模式 144
8.2 使用AOP添加備忘錄 147
8.2.1 創(chuàng)建備忘錄切面 147
8.2.2 為restaurantApi應用returnValueCache切面 150
8.3 小結 152
第9章 確保單例模式的正確實現(xiàn) 153
9.1 通過單元測試了解單例模式 154
9.1.1 使用對象字面量實現(xiàn)單例共享緩存 154
9.1.2 使用模塊實現(xiàn)單例共享緩存 158
9.2 小結 162
第10章 確保工廠模式的正確實現(xiàn) 163
10.1 為工廠編寫單元測試 163
10.2 實現(xiàn)工廠模式 169
10.3 考慮其他工廠類型 171
10.4 小結 171
第11章 確保沙箱模式的正確實現(xiàn)和使用 173
11.1 通過單元測試了解沙箱模式 173
11.1.1 創(chuàng)建部件沙箱 174
11.1.2 創(chuàng)建和測試沙箱工具 187
11.1.3 創(chuàng)建與沙箱一起使用的函數(shù) 191
11.2 小結 193
第12章 確保裝飾器模式的正確實現(xiàn) 195
12.1 使用測試驅動的方式開發(fā)裝飾器 196
12.1.1 為被裝飾的對象編寫一個假對象 197
12.1.2 為錯誤的傳遞編寫測試 198
12.1.3 編寫空白裝飾器 199
12.1.4 添加傳遞功能到裝飾器 200
12.1.5 驗證成功傳遞 202
12.1.6 添加裝飾器的特性 204
12.1.7 通用化裝飾器 210
12.2 小結 211
第13章 確保策略模式的正確實現(xiàn) 213
13.1 通過單元測試了解該模式 213
13.1.1 在不使用策略模式的情況下實現(xiàn)transportScheduler 214
13.1.2 使用策略模式實現(xiàn)transportScheduler 216
13.2 小結 227
第14章 確保代理模式的正確實現(xiàn) 229
14.1 通過測試驅動的方式開發(fā)代理 230
14.2 小結 245
第15章 確保正確實現(xiàn)可鏈接方法 247
15.1 通過單元測試了解該模式 248
15.2 鏈接then方法 255
15.3 小結 257
第Ⅲ部分 測試和編寫高級JavaScript特性
第16章 在無接口語言中遵守接口 261
16.1 了解接口的優(yōu)點 262
16.2 了解接口隔離原則 263
16.3 使用測試驅動開發(fā)創(chuàng)建契約注冊表 265
16.3.1 定義契約 266
16.3.2 判斷是否履行了契約 267
16.3.3 斷言契約被履行了 271
16.3.4 繞過契約執(zhí)行 273
16.3.5 創(chuàng)建在被返回(創(chuàng)建)的對象上實施契約的切面 273
16.4 小結 277
第17章 確保正確的參數(shù)類型 279
17.1 了解JavaScript無類型參數(shù)帶來的機會和風險 280
17.2 擴展ContractRegistry檢查參數(shù) 280
17.2.1 界定任務范圍 280
17.2.2 判斷集合中的所有變量是否都履行了它的契約 281
17.2.3 斷言集合中的所有變量都履行了它的契約 289
17.2.4 在切面中打包參數(shù)檢查功能 290
17.3 支持契約庫 292
17.4 綜合起來 293
17.4.1 創(chuàng)建契約模塊 293
17.4.2 創(chuàng)建應用程序的ContractRegistry 296
17.4.3 為生產發(fā)布繞過契約 297
17.5 比較面向切面的解決方案和靜態(tài)解決方案 297
17.5.1 考慮TypeScript的優(yōu)點 297
17.5.2 考慮切面的優(yōu)點 297
17.6 小結 298
第18章 確保正確使用call、apply和bind 299
18.1 瀏覽this是如何綁定的 299
18.1.1 默認綁定 300
18.1.2 隱式綁定 302
18.1.3 new綁定 303
18.1.4 顯式綁定 305
18.2 創(chuàng)建和測試使用call、apply和bind的代碼 305
18.2.1 使用call和apply 305
18.2.2 使用測試驅動開發(fā)創(chuàng)建一個Array.prototype.forEach Polyfill 307
18.2.3 使用bind 316
18.3 小結 321
第19章 確保正確使用方法借用 323
19.1 確保借用對象符合需求 324
19.1.1 讓被借用的函數(shù)驗證借用者的資格 324
19.1.2 向被借用的對象附加切面 326
19.1.3 使用borrow()方法 329
19.1.4 在ContractRegistry中添加對象驗證器 330
19.2 預期借用者的副作用 331
19.2.1 考慮被隔離函數(shù)的副作用 331
19.2.2 考慮調用其他函數(shù)的函數(shù)的副作用 332
19.3 預期捐贈者對象的副作用 338
19.4 小結 339
第20章 確保正確使用混合 341
20.1 創(chuàng)建和使用混合 343
20.1.1 創(chuàng)建和使用傳統(tǒng)混合 344
20.1.2 創(chuàng)建和使用函數(shù)式混合 361
20.2 小結 367
第21章 測試高級程序架構 369
21.1 確保觀察者模式的可靠使用 369
21.1.1 檢查觀察者模式 370
21.1.2 增強觀察者模式的可靠性 376
21.2 確保中介者模式的可靠使用 380
21.2.1 了解中介者模式 381
21.2.2 增強基于中介者代碼的可靠性 382
21.3 小結 395
第Ⅳ部分 測試中的特殊主題
第22章 測試DOM訪問 399
22.1 對UI進行單元測試 399
22.1.1 檢查難于測試的UI代碼 400
22.1.2 使用TDD創(chuàng)建UI組件 401
22.2 使用分析器優(yōu)化代碼 411
22.2.1 檢測低效代碼 411
22.2.2 避免不成熟的優(yōu)化 418
22.3 小結 418
第23章 確保符合標準 419
23.1 使用ESLint 420
23.1.1 安裝ESLint 420
23.1.2 運行ESLint 424
23.1.3 使用ESLint實施代碼標準 427
23.2 實施架構分離 432
23.2.1 家庭秘密技術 433
23.2.2 銘記技術 435
23.2.3 不可能任務(Mission Impossible)技術 437
23.2.4 魔術棒(Magic Wand)
技術 441
23.2.5 不要使用調用棧技術 442
23.2.6 其他技術 442
23.2.7 其他架構 442
23.3 小結 443
第Ⅴ部分 總結
第24章 測試驅動開發(fā)原則的總結 447
24.1 回顧值得使用測試驅動開發(fā)的原因 447
24.2 練習測試驅動開發(fā) 448
24.3 編寫可單元測試的代碼 448
24.4 掌握測試驅動開發(fā)的
技術 448
24.4.1 在編碼之前編寫測試 448
24.4.2 保持測試DRY 449
24.4.3 首先測試錯誤條件 449
24.4.4 測試要先易后難 449
24.4.5 具體 449
24.4.6 只測試一件事情 450
24.4.7 測試數(shù)據(jù)如同測試一樣重要 450
24.4.8 高效地使用Jasmine 450
24.5 測試本書描述的模式 450
24.5.1 測試面向切面編程 450
24.5.2 測試對象構造 451
24.5.3 測試回調 451
24.5.4 測試基于承諾的代碼 451
24.5.5 測試散函數(shù)應用程序 451
24.5.6 測試備忘錄模式 452
24.5.7 測試單例模式 452
24.5.8 測試工廠模式 452
24.5.9 測試沙箱 452
24.5.10 測試裝飾器模式 453
24.5.11 測試策略模式 453
24.5.12 測試代理模式 453
24.5.13 測試可鏈接方法 453
24.5.14 測試接口一致性 453
24.5.15 測試call和apply的
使用 453
24.5.16 測試方法借用模式 454
24.5.17 測試混合 454
24.5.18 測試中介者和觀察者模式 454
24.5.19 測試DOM訪問 454
24.5.20 實施架構分離的測試 454
24.6 小結 455
第25章 本書JavaScript習語的總結 457
25.1 回顧對象 457
25.1.1 可以添加和刪除的對象屬性 457
25.1.2 可以將對象用作詞典 458
25.2 回顧變量 459
25.2.1 提升變量聲明 459
25.2.2 變量有函數(shù)作用域 460
25.3 回顧函數(shù) 463
25.3.1 函數(shù)是對象 463
25.3.2 提升函數(shù)聲明 463
25.3.3 函數(shù)沒有返回類型 464
25.3.4 函數(shù)可以是匿名的 465
25.3.5 函數(shù)可以被嵌套 465
25.3.6 函數(shù)調用可以使用任意數(shù)量的參數(shù) 466
25.3.7 函數(shù)可以立即被調用 467
25.4 回顧布爾操作 468
25.4.1 在測試相等性時類型可能會被強制轉換 468
25.4.2 值可以是真或假 469
25.5 小結 469

  • 編寫可靠的JavaScript代碼:測試驅動開發(fā)JavaScript商業(yè)軟件

載地址

下載錯誤?【投訴報錯】

編寫可靠的JavaScript代碼:測試驅動開發(fā)JavaScript商業(yè)軟件

      氣書籍

      載聲明

      ☉ 解壓密碼:m.fzitv.net 就是本站主域名,希望大家看清楚,[ 分享碼的獲取方法 ]可以參考這篇文章
      ☉ 推薦使用 [ 迅雷 ] 下載,使用 [ WinRAR v5 ] 以上版本解壓本站軟件。
      ☉ 如果這個軟件總是不能下載的請在評論中留言,我們會盡快修復,謝謝!
      ☉ 下載本站資源,如果服務器暫不能下載請過一段時間重試!或者多試試幾個下載地址
      ☉ 如果遇到什么問題,請評論留言,我們定會解決問題,謝謝大家支持!
      ☉ 本站提供的一些商業(yè)軟件是供學習研究之用,如用于商業(yè)用途,請購買正版。
      ☉ 本站提供的編寫可靠的JavaScript代碼:測試驅動開發(fā)JavaScript商業(yè)軟件資源來源互聯(lián)網,版權歸該下載資源的合法擁有者所有。

      富顺县| 平泉县| 岚皋县| 腾冲县| 绿春县| 兴安县| 承德县| 庆安县| 十堰市| 灵武市| 成武县| 穆棱市| 壤塘县| 五峰| 松阳县| 姚安县| 新宾| 翁牛特旗| 千阳县| 陵川县| 集安市| 武川县| 怀柔区| 张家口市| 铜陵市| 睢宁县| 红河县| 松阳县| 洞口县| 杨浦区| 克拉玛依市| 信宜市| 新巴尔虎右旗| 西峡县| 江华| 寻乌县| 襄樊市| 新疆| 三原县| 阿瓦提县| 那曲县|