新書推薦:
《
异域回声——晚近海外汉学之文史互动研究
》
售價:HK$
109.8
《
世界文明中的作物迁徙:聚焦亚洲、中东和南美洲被忽视的本土农业文明
》
售價:HK$
99.7
《
无端欢喜
》
售價:HK$
76.2
《
股票大作手操盘术
》
售價:HK$
53.8
《
何以中国·何谓唐代:东欧亚帝国的兴亡与转型
》
售價:HK$
87.4
《
一间只属于自己的房间 女性主义先锋伍尔夫代表作 女性精神独立与经济独立的象征,做自己,比任何事都更重要
》
售價:HK$
44.6
《
泉舆日志 幻想世界宝石生物图鉴
》
售價:HK$
134.2
《
养育女孩 : 官方升级版
》
售價:HK$
50.4
|
編輯推薦: |
ThoughtWorks高级咨询师最新力作
轻量级开发是一个很宽泛的主题,开发人员经常提到这个术语,但却少有人能够讲明它的内涵。本书介绍了轻量级Web应用开发背后的核心理念和方法。
通过一本书,掌握众多轻量级工具及实践,内容涵盖应用服务、开发框架、测试工具、持续集成等多个流程。
|
內容簡介: |
轻量级开发是一个很宽泛的主题,开发人员经常提到这个术语,但却少有人能够讲明它的内涵。本书介绍了轻量级Web应用开发背后的核心理念和方法。
全书共16章,介绍了环境配置与工具准备、Web应用服务器、数据库访问层、客户端框架、CSS框架、客户端测试框架、现代的前端开发方式、编写更容易维护的JavaScript代码、本地构建、持续集成、单元测试与集成测试、环境搭建的自动化、应用程序发布、前端实例、后台实例、集成实例。除此之外,附录部分还介绍了一些补充知识。
本书适合软件开发人员以及对轻量级Web开发感兴趣的读者阅读。
|
關於作者: |
邱俊涛,软件工程师,现就职于ThoughtWorks,喜欢编程,尤其喜欢编程带来的成就感。对动态语言,函数式编程等有浓厚的兴趣。喜欢开源软件,喜欢知识分享,并从他人的分享中学习。崇尚简单,轻量的设计和模式。个人主页:http:icodeit.org。微博:@正反反长。
|
目錄:
|
目录
前言
第1章 环境配置与工具准备1
1.1 Shell1
1.2 管道7
1.3 几个常用命令9
1.3.1 文件查找命令find9
1.3.2 网络命令curl11
1.3.3 文件搜索grep13
1.3.4 定时任务crontab14
1.3.5 JSON查询利器jq15
1.4 编辑器18
1.4.1 Vim编辑器18
1.4.2 Sublime Text编辑器23
1.5 程序启动器26
1.5.1 Launchy27
1.5.2 Alfred27
1.6 关于Windows29
第2章 Web应用服务器30
2.1 Rack30
2.1.1 rackup32
2.1.2 Rack中间件36
2.2 Sinatra39
2.2.1 404页面39
2.2.2 使用模板引擎44
2.2.3 简单认证中间件46
2.3 Grape47
第3章 数据库访问层56
3.1 数据库的访问56
3.2 数据库方案(schema)
的修改57
3.3 ActiveRecord59
3.3.1 和Rails一起使用59
3.3.2 独立使用(在既有
数据库中)65
3.3.3 校验70
3.4 DataMapper76
第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.js98
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 Mocha134
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 实例Todoify147
7.5.1 underscore的一些
特性148
7.5.2 jQuery插件基础
知识150
7.5.3 Todoify151
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 Rake180
9.1.2 Guard185
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 安装Jenkins199
10.1.3 安装rbenv200
10.1.4 安装NodeJS201
10.1.5 安装Xvfb202
10.2 持续集成服务器203
10.3 与Github集成210
10.3.1 Travis211
10.3.2 Snap213
第11章 单元测试与集成测试215
11.1 RSpec单元测试215
11.2 集成测试工具Selenium221
11.2.1 Selenium-webdriver222
11.2.2 Capybara223
11.2.3 Cucumber224
11.3 搭建Selenium独立环境230
11.3.1 安装Selenium230
11.3.2 服务脚本230
第12章 环境搭建的自动化233
12.1 自动化工具Chef234
12.1.1 使用Berkshelf管理
cookbook234
12.1.2 自动创建用户236
12.1.3 安装nginx服务器237
12.1.4 配置nginx239
第13章 应用程序发布244
13.1 使用Heroku发布应用
程序244
13.2 发布到虚拟机环境249
13.2.1 使用密钥登录249
13.2.2 使用Mina250
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 加入JavaScript271
14.4.1 moko273
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 发布到Heroku291
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 一个奇怪的bug310
16.2 添加图片313
16.2.1 后台API314
16.2.2 客户端上传文件315
16.3 新的问题321
16.4 文件存储323
16.4.1 创建分组及用户323
16.4.2 创建S3中的
bucket325
16.4.3 存储到云端326
16.4.4 部署到Heroku328
附录A Web如何工作330
A.1 CGI的相关背景330
A.2 配置Apache支持CGI331
A.3 更进一步332
A.4 一个稍微有用的脚本333
A.5 更进一步FastCGI334
附录B Angular.js的测试335
B.1 测试Controller335
B.1.1 AngularJS的一个
典型Controller335
B.1.2 测试依赖于Service
的Controller336
B.1.3 在何处实例化
Controller337
B.1.4 如何mock一个
service338
B.2 测试Service339
B.2.1 Service的典型示例339
B.2.2 $httpBackend服务339
B.2.3 Service的测试模板341
B.2.4 服务器Moco342
|
|