推荐理由
国内第一部纯实战Rails教程,使用Rails开发自己的Amazon网站。深入探讨安全、国际化、测试和性能优化等关键主题。
“无论你是要真正着手开发Ror项目,还是仅仅为了提高自己的技术,本书都非常值得一读。”
——Dr.Dobb's Joumal
“本书对实际开发帮助极大,将大大提升你的Rails功力,我强烈推荐。”
——JavaRanch.com
现在就动手。从头开始创建一个自己的Amazon.com网站!
这是天方夜谭吗?不。使用Ruby on Rails,一切皆有可能。
本书由两位资深Web开发人员共同撰写,在简单介绍了基础知识之后,通过演示构建一个网上书店的全过程,帮助读者掌握Rails开发的各种核心概念、最佳实践和技术。包括MVC模式、ActiveRecord(Rails的对象一关系映射系统)、Ferret搜索引擎以及下一代Web应用的关键要素:Ajax、RSS、标签等。不仅如此,书中还深入探讨了实际Web应用必须考虑的安全、国际化、验收测试、部署和性能优化等高级主题,使读者能够迅速上手,开发出专业的Web应用。
作者专门为本书开设了论坛:groups.google.com/group/railsecommerce。
内容简介
本书全面讲解了使用Ruby on Rails创建产品级应用程序的过程。书中通过演示构建网上书店的全过程,先后介绍如何使用如TDD的敏捷实践,启动一个项目并建立良好稳定的基础,如何深入Ruby on Rails,实现诸如将应用程序翻译成各种语言对产品进行调试等的普遍需求。其中用到的主要技术包括Ajax、聚合、设置标签和国际化等,还介绍了如何使用ActiveRecord和Ferret搜索引擎及一些其他技术。
本书适合开发实际Rails应用的Web开发人员阅读。
本书作者
Christion Helsten,Aktagon公司的创始人,Sanda Interactive公司的CTO。曾任职于普华永道咨询公司和IBM商业咨洵服务公司,担任了许多大型电子商务项目的顾问。
目录
第1章 项目创建和原型验证
1.1 Emporium项目介绍
1.2 安装软件
1.2.1 安装Ruby
1.2.2 安装RubyGems
1.2.3 安装Ruby on Rails
1.2.4 安装MySQL
1.2.5 安装MySQL驱动程序
1.3 Scrum介绍
1.4 创建Emporium应用程序
1.4.1 创建应用程序框架
1.4.2 创建Emporium数据库
1.4.3 第一次启动Emporium
1.5 Ruby on Rails工作原理
1.6 实现用户情境:About Emporium
1.6.1 运行生成的脚本
1.6.2 修改生成的视图
1.6.3 创建页面布局
1.6.4 修改生成的控制器
1.7 小结
第2章 作者管理
2.1 TDD
2.2 在Rails中测试
2.2.1 单元测试
2.2.2 功能测试
2.2.3 集成测试
2.3 创建ActiveRecord模型
2.3.1 使用ActiveRecord迁移
2.3.2 运行单元测试
2.4 创建控制器
2.5 实现用户情境
2.5.1 添加作者
2.5.2 罗列作者
2.5.3 查看作者信息
2.5.4 编辑作者
2.5.5 删除作者
2.5.6 调整闪存提示
2.6 小结
第3章 图书库存管理
3.1 收集需求
3.2 使用脚手架
3.3 实现出版商管理界面
3.3.1 为Publishers表更新数据库架构
3.3.2 用脚手架脚本生成出版商代码
3.3.3 完成用户情境:添加出版商
3.3.4 完成用户情境:查看出版商
3.3.5 完成用户情境:编辑出版商
3.4 实现图书管理界面
3.4.1 使用Books表更新数据库架构
3.4.2 创建图书模型
3.4.3 ActiveRecord映射
3.4.4 修改生成的模型
3.4.5 克隆数据库
3.4.6 单元测试所有验证
3.4.7 单元测试ActiveRecord映射
3.4.8 用脚手架脚本生成图书管理代码
3.4.9 集成测试
3.4.10 完成用户情境:添加图书
3.4.11 完成用户情境:上传图书封面
3.4.12 完成用户情境:罗列图书
3.4.13 完成用户情境:查看图书
3.4.14 完成用户情境:编辑图书
3.4.15 测试用户情境:删除图书
3.5 小结
第4章 浏览图书目录
4.1 收集图书目录需求
4.2 实现图书目录界面
4.2.1 实现用户情境:浏览图书目录
4.2.2 实现用户情境:查看图书详情
4.2.3 实现用户情境:搜索图书
4.2.4 实现用户情境:获取最新书目
4.2.5 创建RSS提要
4.3 小结
第5章 实现购物车
5.1 收集购物车需求
5.2 建立购物车
5.2.1 创建控制器
5.2.2 添加功能测试
5.2.3 创建模型
5.2.4 修改控制器
5.2.5 创建视图
5.3 实现用户情境
5.3.1 实现用户情境:向购物车添加商品
5.3.2 实现用户情景:从购物车中移除商品
5.3.3 实现用户情境:清空购物车
5.4 小结
第6章 实现论坛
6.1 收集论坛需求
6.2 使用线索化论坛插件
6.3 建立论坛
6.3.1 更新数据库架构
6.3.2 修改模型
6.3.3 单元测试模型
6.3.4 生成控制器和视图
6.4 实现用户情境
6.4.1 实现用户情境:发帖
6.4.2 实现用户情境:浏览论坛
6.4.3 实现用户情境:看帖
6.4.4 实现用户情境:回帖
6.5 小结
第7章 标签支持
7.1 收集贴标签的需求
7.2 使用标签RubyGem
7.3 建立标签机制
7.3.1 更新数据库架构
7.3.2 准备模型
7.3.3 模型单元测试
7.3.4 用控制台测试模型
7.4 实现用户情境
7.4.1 实现用户情境:贴标签
7.4.2 实现用户情境:编辑标签
7.4.3 实现用户情境:罗列标签和显示标签
7.4.4 实现用户情境:推荐图书
7.5 小结
第8章 安全
8.1 收集身份认证需求
8.2 使用身份认证插件
8.3 实现用户情境
8.3.1 实现用户情境:登录
8.3.2 实现用户情境:登录失败
8.3.3 实现用户情境:重设密码
8.4 保护应用程序
8.4.1 跨站脚本攻击
8.4.2 URL和表单处理
8.4.3 SQL注入
8.4.4 跨站请求伪造
8.5 小结
第9章 结账与订单处理
9.1 收集结账与订单处理需求
9.2 实现用户情境:结账
9.2.1 创建模型
9.2.2 为模型添加验证
9.2.3 创建控制器和集成测试
9.2.4 创建视图
9.2.5 保存订单信息
9.3 集成支付网关
9.3.1 安装Active Merchant插件
9.3.2 PayPal集成
9.3.3 Authorize.Net集成
9.3.4 使用Payment gem
9.4 实现管理员用户情境
9.4.1 实现用户情境:查看订单列表
9.4.2 实现用户情境:查看订单
9.4.3 实现用户情境:终止订单
9.5 计算配送费用和税费
9.5.1 使用Shipping Gem
9.5.2 计算税费
9.6 小结
第10章 多语言支持
10.1 收集本地化需求
10.2 使用Globalize插件
10.2.1 用Globalize本地化
10.2.2 建立Globalize
10.3 实现用户情境
10.3.1 实现用户情境:改变地区设置
10.3.2 实现翻译用户情境
10.4 翻译视图和Book模型
10.4.1 翻译视图
10.4.2 翻译模型
10.5 本地化日期、数字和货币
10.5.1 本地化日期
10.5.2 本地化数字和货币
10.6 添加Unicode(UTF-8)支持
10.6.1 在HTML中设置字符编码
10.6.2 为HTTP响应设置字符编码
10.6.3 修改数据库以便使用UTF-8
10.7 小结
第11章 验收测试
11.1 使用Selenium
11.2 写Selenium测试
11.2.1 Selenium命令
11.2.2 Selenium测试格式
11.2.3 第一个验收测试
11.3 录制Selenium测试
11.3.1 使用Selenium IDE
11.3.2 录制查看论坛验收测试
11.3.3 录制发帖验收测试
11.3.4 录制看帖验收测试
11.3.5 录制回帖验收测试
11.4 小结
第12章 应用程序部署
12.1 建立产品环境
12.1.1 连接产品服务器:SSH
12.1.2 安装Web服务器:LightTPD
12.1.3 安装应用程序服务器:Ruby on Rails和FastCGI
12.1.4 安装数据库服务器(MySQL)
12.1.5 配置LightTPD
12.1.6 创建产品数据库
12.2 手工部署应用程序
12.2.1 复制应用程序
12.2.2 创建用户和组
12.2.3 启动LightTPD
12.2.4 启动FastCGI进程
12.3 自动化部署
12.3.1 安装Capistrano
12.3.2 创建Capistrano部署配方
12.3.3 运行Setup任务
12.3.4 部署到产品
12.3.5 启动LightTPD
12.4 小结
第13章 性能优化
13.1 性能和延展
13.2 衡量性能
13.2.1 查看日志文件
13.2.2 使用Rails分析器
13.3 缓存
13.3.1 页面缓存
13.3.2 动作缓存
13.3.3 片段缓存
13.3.4 片段存储
13.3.5 缓存ActiveRecord对象
13.4 Rails中常见的性能问题
13.4.1 呈现速度
13.4.2 数据库访问
13.5 小结
书摘与插图
