編輯推薦
ThoughtWorks高級谘詢師全新力作
輕量級開發是一個很寬泛的主題,開發人員經常提到這個術語,但卻少有人能夠講明它的內涵。本書介紹瞭輕量級Web應用開發背後的核心理念和方法。
通過一本書,掌握眾多輕量級工具及實踐,內容涵蓋應用服務、開發框架、測試工具、持續集成等多個流程。
內容簡介
輕量級開發是一個很寬泛的主題,開發人員經常提到這個術語,但卻少有人能夠講明它的內涵。本書介紹瞭輕量級Web應用開發背後的核心理念和方法。
全書共16章,介紹瞭環境配置與工具準備、Web應用服務器、數據庫訪問層、客戶端框架、CSS框架、客戶端測試框架、現代的前端開發方式、編寫更容易維護的JavaScript代碼、本地構建、持續集成、單元測試與集成測試、環境搭建的自動化、應用程序發布、前端實例、後颱實例、集成實例。除此之外,附錄部分還介紹瞭一些補充知識。
本書適閤軟件開發人員以及對輕量級Web開發感興趣的讀者閱讀。
作者簡介
邱俊濤,軟件工程師,現就職於ThoughtWorks,喜歡編程,尤其喜歡編程帶來的成就感。對動態語言,函數式編程等有濃厚的興趣。喜歡開源軟件,喜歡知識分享,並從他人的分享中學習。崇尚簡單,輕量的設計和模式。
內頁插圖
精彩書評
輕量級Web開發是一個很寬泛的主題,開發人員經常提到這個術語,但卻少有人能夠講明它的內涵。
本書將教會你如何將一個想法變成實際的Web應用。從高效的編程工具,開發流程,到敏捷開發中的各種輕量級實踐,再到從零開始開發一個具體而微的實例。
本書適閤軟件開發人員以及對輕量級Web開發感興趣的讀者閱讀。
本書具有以下特色:
改進開發流程
書中涉及瞭現代的、高效的工作方式,學會這些工具和技巧,可以使你的開發效率大大提升;
全生命周期
軟件開發不隻是寫程序,構建、自動化測試、部署等都是開發的一部分。本書會告訴你如何快速而高效的完成這些任務;
實例貫穿
書中不但在每個章節中有一些小型的例子,還專門開闢齣3章來將這些零散的知識點連接起來,使你更容易學以緻用。
本書配套網站http://icodeit.org/lightweight-web/提供瞭示例代碼和樣章下載。
目錄
前言
第1章 環境配置與工具準備 1
1.1 Shell 1
1.2 管道 7
1.3 幾個常用命令 9
1.3.1 文件查找命令find 9
1.3.2 網絡命令curl 11
1.3.3 文件搜索grep 13
1.3.4 定時任務crontab 14
1.3.5 JSON查詢利器jq 15
1.4 編輯器 18
1.4.1 Vim編輯器 18
1.4.2 Sublime Text編輯器 23
1.5 程序啓動器 26
1.5.1 Launchy 27
1.5.2 Alfred 27
1.6 關於Windows 29
第2章 Web應用服務器 30
2.1 Rack 30
2.1.1 rackup 32
2.1.2 Rack中間件 36
2.2 Sinatra 39
2.2.1 404頁麵 39
2.2.2 使用模闆引擎 44
2.2.3 簡單認證中間件 46
2.3 Grape 47
第3章 數據庫訪問層 56
3.1 數據庫的訪問 56
3.2 數據庫方案(schema)的修改 57
3.3 ActiveRecord 59
3.3.1 和Rails一起使用 59
3.3.2 獨立使用(在既有數據庫中) 65
3.3.3 校驗 70
3.4 DataMapper 76
第4章 客戶端框架 80
4.1 富客戶端 80
4.2 Backbone.js簡介 83
4.2.1 模型 83
4.2.2 視圖 85
4.2.3 集閤 91
4.2.4 與服務器交互 94
4.2.5 路由錶 95
4.3 Angular.js 98
4.3.1 數據雙嚮綁定 98
4.3.2 內置指令 100
4.3.3 AngularJS中的服務 101
4.3.4 與RESTFul的API集成 105
4.3.5 與moko集成 106
第5章 CSS框架簡介 108
5.1 Foundation簡介 108
5.2 BootStrap簡介 117
5.2.1 布局 118
5.2.2 常用組件 121
第6章 客戶端測試框架 130
6.1 Jasmine簡介 130
6.1.1 Spy功能 131
6.1.2 自定義匹配器 133
6.2 Mocha 134
6.2.1 Mocha的基本用法 135
6.2.2 測試異步場景 137
第7章 現代的前端開發方式 140
7.1 Karma簡介 140
7.2 前端依賴管理 141
7.3 搭建工程 143
7.4 測試驅動開發 146
7.5 實例Todoify 147
7.5.1 underscore的一些特性 148
7.5.2 jQuery插件基礎知識 150
7.5.3 Todoify 151
7.5.4 進一步改進 159
第8章 編寫更容易維護的JavaScript代碼 161
8.1 一個實例 161
8.2 重構:更容易測試的代碼 165
8.2.1 搜索框 166
8.2.2 發送請求 167
8.2.3 結果集 168
8.2.4 放在一起 171
8.3 關注點分離:另一種實現方式 174
8.3.1 搜索服務 175
8.3.2 結果視圖 175
8.3.3 搜索框視圖 176
8.3.4 搜索邏輯 176
8.3.5 放在一起 177
8.3.6 更容易測試的代碼 178
第9章 本地構建 180
9.1 Ruby中的構建 180
9.1.1 Rake 180
9.1.2 Guard 185
9.2 JavaScript中的構建 187
9.2.1 Grunt的使用 187
9.2.2 Gulp的使用 192
第10章 持續集成 196
10.1 環境搭建 196
10.1.1 安裝操作係統 196
10.1.2 安裝Jenkins 199
10.1.3 安裝rbenv 200
10.1.4 安裝NodeJS 201
10.1.5 安裝Xvfb 202
10.2 持續集成服務器 203
10.3 與Github集成 210
10.3.1 Travis 211
10.3.2 Snap 213
第11章 單元測試與集成測試 215
11.1 RSpec單元測試 215
11.2 集成測試工具Selenium 221
11.2.1 Selenium-webdriver 222
11.2.2 Capybara 223
11.2.3 Cucumber 224
11.3 搭建Selenium獨立環境 230
11.3.1 安裝Selenium 230
11.3.2 服務腳本 230
第12章 環境搭建的自動化 233
12.1 自動化工具Chef 234
12.1.1 使用Berkshelf管理cookbook 234
12.1.2 自動創建用戶 236
12.1.3 安裝nginx服務器 237
12.1.4 配置nginx 239
第13章 應用程序發布 244
13.1 使用Heroku發布應用程序 244
13.2 發布到虛擬機環境 249
13.2.1 使用密鑰登錄 249
13.2.2 使用Mina 250
13.3 服務器典型配置 254
第14章 一個實例(前端部分) 259
14.1 綫框圖 259
14.2 搜索結果頁麵 261
14.2.1 模闆頁麵 262
14.2.2 導航欄 263
14.2.3 走馬燈 264
14.2.4 搜索框 266
14.2.5 目錄側欄 266
14.2.6 植物列錶 267
14.2.7 分頁器 268
14.3 詳細信息頁麵 270
14.4 加入JavaScript 271
14.4.1 moko 273
14.4.2 AngularJS應用 275
14.4.3 細節頁麵 279
第15章 一個實例(後颱部分) 283
15.1 第一個迭代 284
15.1.1 配置環境 284
15.1.2 定義數據 285
15.1.3 第一次提交 288
15.1.4 添加數據 289
15.2 發布到Heroku 291
15.2.1 環境準備 292
15.2.2 添加數據庫插件 292
15.2.3 測試遠程應用 293
15.2.4 訪問遠程數據 294
15.2.5 導齣數據 295
15.3 更進一步 296
15.3.1 模塊化的Sinatra應用 296
15.3.2 測試 297
第16章 一個實例(集成) 304
16.1 發布 307
16.1.1 添加植物頁麵 308
16.1.2 一個奇怪的bug 310
16.2 添加圖片 313
16.2.1 後颱API 314
16.2.2 客戶端上傳文件 315
16.3 新的問題 321
16.4 文件存儲 323
16.4.1 創建分組及用戶 323
16.4.2 創建S3中的bucket 325
16.4.3 存儲到雲端 326
16.4.4 部署到Heroku 328
附錄A Web如何工作 330
A.1 CGI的相關背景 330
A.2 配置Apache支持CGI 331
A.3 更進一步 332
A.4 一個稍微有用的腳本 333
A.5 更進一步FastCGI 334
附錄B Angular.js的測試 335
B.1 測試Controller 335
B.1.1 AngularJS的一個典型Controller 335
B.1.2 測試依賴於Service的Controller 336
B.1.3 在何處實例化Controller 337
B.1.4 如何mock一個service 338
B.2 測試Service 339
B.2.1 Service的典型示例 339
B.2.2 $httpBackend服務 339
B.2.3 Service的測試模闆 341
B.2.4 服務器Moco 342
前言/序言
輕量級Web應用開發 下載 mobi epub pdf txt 電子書 格式