![]() 作者:Sam Ruby/Dave Thomas/David Heineme Hansson 出版社: 机械工业出版社 副标题: 应用Rails进行敏捷Web开发(第四版) 原作名: Agile Web Development with Rails, Fourth Edition 译者:慕尼黑Isar工作组/骆古道 出版年: 2012-3-15 页数: 343 定价: 59.00元 装帧: 平装 丛书: 华章专业开发者丛书 ISBN: 9787111374046 内容简介 · · · · · ·本书第1版曾荣获Jolt大奖“最佳技术图书”奖。在前3版的内容架构基础上,第4版增加了关于Rails中新特性和最佳实践的内容。本书从逐步创建一个真正的应用程序开始,然后介绍Rails的内置功能。全书分为3部分,第一部分介绍Rails的安装、应用程序验证、Rails框架的体系结构,以及Ruby语言的知识;第二部分用迭代方式创建应用程序,然后依据敏捷开发模式搭建测试案例,最终用Capistrano完成部署;第三部分有条不紊地补充缺少的知识并涵盖足以应付日常的实际工作。本书既有直观的示例,又有深入的分析,同时涵盖了Web应用开发中各方面的相关知识,堪称一部内容全面而又深入浅出的佳作。 本书适合Ruby和Rails的初级、中级读者阅读,并可作为开发人员的参考手册。 作者简介 · · · · · ·Sam Ruby是一位卓越的软件开发者,他是W3C HTML工作组的负责人之一,并在Apache软件基金会的许多开源软件项目中作出了积极的贡献。他还是IBM新兴技术集团的一位高级技术人员。 Dave Thomas是“敏捷宣言”的作者之一,所以他了解敏捷性;因为他是《Programming Ruby》一书的作者,所以他又了解Ruby;又因为他是一位活跃的Rails开发者,所以他也了解Rails。 David Heinemeier Hansson,是Rails框架的创建者。 目录 · · · · · ·对本书的赞誉译者序 译者简介 第4 版序言 前言 致谢 · · · · · ·() 对本书的赞誉 译者序 译者简介 第4 版序言 前言 致谢 第一部分 起步 第1 章 安装Rails 1 1.1 Windows 上的安装 1 1.2 Mac OS X 上的安装 3 1.3 Linux 上的安装 4 1.4 选择一个Rails 版本 5 1.5 设置开发环境 6 1.5.1 命令行 6 1.5.2 版本控制 6 1.5.3 编辑器 7 1.5.4 桌面 8 1.6 Rails 和数据库 9 1.7 本章小结 10 第2 章 即时满足 11 2.1 新建一个应用程序 11 2.2 Hello,Rails ! 13 2.2.1 Rails 和URL 请求 14 2.2.2 第一个动作 14 2.2.3 创建动态网页 15 2.2.4 动态内容 15 2.2.5 把时间加上 16 2.2.6 故事讲到现在 17 2.3 把页面连起来 18 2.4 本章小结 20 2.4.1 练习时间 20 2.4.2 清理现场 21 第3 章 Rails 应用程序框架 22 3.1 模型、视图以及控制器 22 3.2 Rails 的模型支持 24 3.2.1 对象- 关系映射 24 3.2.2 Active Record 25 3.3 Action Pack :视图与控制器 26 3.3.1 视图支持 26 3.3.2 还有控制器 26 第4 章 Ruby 简介 28 4.1 Ruby 是一门面向对象的语言 28 4.1.1 Ruby 命名规则 29 4.1.2 方法 29 4.2 数据类型 30 4.2.1 字符串 30 4.2.2 数组和散列 30 4.2.3 正则表达式 32 4.3 逻辑方法 32 4.3.1 控制结构 32 4.3.2 代码块和迭代器 33 4.3.3 异常 34 4.4 组织结构 34 4.4.1 类 34 4.4.2 模块 36 4.4.3 YAML 36 4.5 封送对象 37 4.6 综合分析 37 4.7 Ruby 语言习语 38 第二部分 构建应用程序 第5 章 Depot 应用程序 41 5.1 增量式开发 41 5.2 Depot 是做什么的 42 5.2.1 用例 42 5.2.2 页面流程 42 5.2.3 数据 44 5.3 让我们来编码吧 45 第6 章 任务A :创建应用程序 46 6.1 迭代A1 :创建商品维护的应用程序 46 6.1.1 创建Rails 应用程序 46 6.1.2 创建数据库 46 6.1.3 生成脚手架 47 6.1.4 应用迁移 48 6.1.5 查看商品清单 49 6.2 迭代A2 :美化商品清单 51 6.3 本章小结 54 练习时间 55 第7 章 任务B :验证和单元测试 57 7.1 迭代B1 :验证 57 7.2 迭代B2 :模型的单元测试 60 7.2.1 真正单元测试 61 7.2.2 静态测试 63 7.2.3 使用静态测试数据 66 7.3 本章小结 67 练习时间 67 第8 章 任务C :商品目录显示 68 8.1 迭代C1 :创建商品目录清单 68 8.2 迭代C2 :增加页面布局 71 8.3 迭代C3 :用帮助函数来调整价格格式 74 8.4 迭代C4 :控制器功能测试 74 8.5 本章小结 77 练习时间 77 第9 章 任务D :创建购物车 78 9.1 迭代D1 :寻找购物车 78 9.2 迭代D2 :将产品放到购物车中 79 9.3 迭代D3 : 添加一个按钮 81 9.4 本章小结 85 练习时间 85 第10 章 任务 E :更智能的购物车 86 10.1 迭代E1 :创建更智能的购物车 86 10.2 迭代E2 :错误处理 90 10.3 迭代E3 :对购物车的最后加工 92 10.4 本章小结 96 练习时间 96 第11 章 任务F :Ajax 初体验 97 11.1 迭代F1 :转移购物车 97 11.1.1 局部模板 97 11.1.2 改变流程 101 11.2 迭代F2 :建立一个基于Ajax的购物车 102 11.2.1 排疑解难 103 11.2.2 客户永远不会满足 104 11.3 迭代F3 :高亮变化 104 11.4 迭代F4 :隐藏一个空的购物车 106 11.5 测试Ajax 改变 110 11.6 本章小结 111 练习时间 112 第12 章 任务G :付款 113 12.1 迭代G1 :获取订单 113 12.1.1 创建获取订单的表单 114 12.1.2 获取订单细节 120 12.1.3 最后一个Ajax 更改 124 12.2 循环G2 :Atom 推送 125 12.3 迭代G3 :分页 128 12.4 本章小结 131 练习时间 131 第13 章 任务H :发送电子邮件 132 13.1 迭代H1 :发送确认邮件 132 13.1.1 配置邮件 132 13.1.2 发送邮件 133 13.1.3 邮件模板 134 13.1.4 生成邮件 135 13.1.5 发送多内容类型 136 13.1.6 邮件功能测试 137 13.2 迭代H2 :应用程序的集成测试 138 13.3 本章小结 142 练习时间 142 第14 章 任务I :登录 143 14.1 迭代I1 :添加用户 143 14.2 迭代I2 :认证用户 150 14.3 迭代I3 :限制访问 155 14.4 迭代I4 :增加侧边栏,更多管理 157 14.5 本章小结 160 练习时间 160 第15 章 任务J :国际化 161 15.1 迭代 J1 :选择语言环境 161 15.2 迭代 J2 :翻译在线商店页面 164 15.3 迭代 J3 :翻译结账页面 169 15.4 迭代 J4 :添加语言环境的切换器 174 15.5 本章小结 175 练习时间 176 第16 章 任务K :部署和产品环境 177 16.1 迭代 K1 :用Phusion Passenger和MySQL 部署 178 16.1.1 安装Passenger 178 16.1.2 在本地部署应用程序 179 16.1.3 使用MySQL 数据库 180 16.1.4 加载数据库182 16.2 迭代 K2:用Capistrano远程部署 183 16.2.1 准备好部署服务器 183 16.2.2 把应用程序放到版本管理下 184 16.2.3 远程部署应用程序 185 16.2.4 冲洗,洗净,重复 187 16.3 迭代 K3 :检查部署的应用程序 188 16.3.1 查看日志文件 188 16.3.2 使用命令行界面来查看实时的应用程序 188 16.3.3 处理日志文件 189 16.3.4 开始发行,超越自我 189 16.4 本章小结 190 练习时间 190 第17 章 Depot 回顾 191 17.1 Rails 的概念 191 17.1.1 模型191 17.1.2 视图192 17.1.3 控制器 192 17.1.4 配置192 17.1.5 测试193 17.1.6 部署193 17.2 文档化所做的事情 193 第三部分 深入Rails 第18 章 自己去发现Rails(工作)方法 195 18.1 东西都去哪里了 195 18.1.1 应用程序的位置 197 18.1.2 测试的位置197 18.1.3 文档的位置197 18.1.4 支持库的位置 198 18.1.5 Rake 任务的位置 199 18.1.6 日志的位置200 18.1.7 静态网页的位置 200 18.1.8 脚本的位置200 18.1.9 临时文件的位置 201 18.1.10 第三方代码的位置 201 18.1.11 配置的位置 201 18.2 命名约定 202 18.2.1 混合大小写、下划线和复数 202 18.2.2 把控制器分组到模块中 203 18.3 本章小结 205 第19 章 Active Record 模块 206 19.1 定义数据结构 206 19.1.1 使用表和字段的规则 206 19.1.2 Active Record 所提供的附加字段 209 19.2 查找和遍历记录 210 19.2.1 识别单个行210 19.2.2 模型关联性说明 211 19.2.3 一对一关联211 19.2.4 一对多关联212 19.2.5 多对多关联212 19.3 创建、读取、更新和删除操作 213 19.3.1 创建新的行记录 213 19.3.2 读取已有行记录 215 19.3.3 动态查询器216 19.3.4 SQL 语言与Active Record 模块 217 19.3.5 使用like 查询子句 218 19.3.6 构造返回记录的子集 219 19.3.7 获取字段统计 221 19.3.8 范围函数 221 19.3.9 编写自己SQL 语句 222 19.3.10 重新加载数据 224 19.3.11 更新现有行记录 224 19.3.12 方法save、save!、create和create! 225 19.3.13 删除行记录 226 19.4 干预跟踪进程 227 19.4.1 成组相关回调 228 19.4.2 观察器 231 19.4.3 观察器实例化 232 19.5 数据库事务 232 19.6 本章小结 235 第20 章 行为调度和行为控制 237 20.1 分派请求到控制器 237 20.1.1 REST :表述性状态转移 238 20.1.2 添加附加行为 243 20.1.3 嵌套资源 243 20.1.4 浅路由嵌套243 20.1.5 选择数据表述 244 20.1.6 测试路由 245 20.2 处理请求 246 20.2.1 行为方法 246 20.2.2 控制器环境246 20.2.3 用户响应 248 20.2.4 呈现模板 248 20.2.5 发送文件和其他数据 251 20.2.6 重定向 253 20.3 持续请求的对象和操作 255 20.3.1 Rails 会话 255 20.3.2 会话存储 257 20.3.3 比较会话存储选项 258 20.3.4 会话逾期与清除 259 20.3.5 闪存:行为间通信 259 20.3.6 过滤器 260 20.3.7 前置和后置过滤器 260 20.3.8 过滤器继承261 20.4 本章小结 261 第21 章 Action View 模块 263 21.1 使用模板 263 21.1.1 模板存放的位置 263 21.1.2 模板运行的环境 264 21.1.3 模板包含的内容 264 21.2 生成表单 265 21.3 处理表单 267 21.4 上传文件到Rails 应用程序 268 21.5 使用帮助程序 271 21.5.1 自定义的帮助程序 272 21.5.2 格式和链接帮助程序 272 21.5.3 格式帮助程序 272 21.5.4 链接到其他页面和资源 274 21.6 用页面布局和局部模板减轻维护工作 277 21.6.1 布局277 21.6.2 放置布局文件 278 21.6.3 传递数据到布局 279 21.6.4 局部页面模板 281 21.6.5 局部模板和集合 282 21.6.6 共享模板 283 21.6.7 局部模板与布局 283 21.6.8 局部模板和控制器 283 21.7 本章小结 283 第22 章 缓存 285 22.1 页面缓存 285 22.2 让页面失效 287 22.2.1 显式地让页面失效 287 22.2.2 挑选缓存存储策略 288 22.2.3 隐式地让页面失效 289 22.2.4 让基于时间的缓存页面失效 290 22.2.5 正确处理客户端缓存 291 22.2.6 过期头 291 22.2.7 最后的修改和ETag 支持 291 22.3 片段缓存 292 22.4 本章小结 296 第23 章 数据迁移 297 23.1 创建和运行迁移 297 23.2 剖析迁移 299 23.2.1 字段的类型300 23.2.2 重命名字段301 23.2.3 修改字段 302 23.3 表的管理 302 23.3.1 表的创建选项 303 23.3.2 表的重命名304 23.3.3 rename_table 方法的问题 304 23.3.4 定义索引 305 23.3.5 主键306 23.3.6 没有主键的表 306 23.4 高级迁移 306 23.4.1 使用原生 SQL 307 23.4.2 扩展迁移 307 23.4.3 自定义消息和基准测试程序 309 23.5 当迁移变糟时 309 23.6 迁移外的模式管理 310 23.7 本章小结 311 第24 章 非浏览器应用 312 24.1 用Active Record 开发独立应用程序 312 24.2 使用Active Support 库功能 313 24.2.1 核心扩展 313 24.2.2 附加的Active Support 类 315 24.2.3 使用 Action View 帮助程序 317 24.3 使用Active Resource 开发远程应用程序 317 24.3.1 访问和更新简单属性 317 24.3.2 关系和集合318 24.3.3 汇总整理 320 24.4 本章小结 321 第25 章 Rails 包依赖关系 322 25.1 用构建器生成XML 25.2 用ERb 生成HTML 323 25.3 用Bundler 管理包依赖关系 325 25.4 用Rack 实现与Web 服务器的交互 327 25.5 自动执行任务工具Rake 330 25.6 Rails 包依赖关系揭秘 331 25.7 本章小结 333 第26 章 Rails 插件 334 26.1 信用卡业务处理插件Active Merchant 334 26.2 节约带宽的插件Asset Packager 335 26.3 用Haml 美化标记语言 337 26.4 用JQuery 少写多做 339 26.5 在RailsPlugins.org上找出更多 342 26.6 本章小结 343 第27 章 整装进发 344 参考文献 345 · · · · · · () |
为我提供了一个解看历史和现实的全新视角。
能尽量客观的阐述
开阔了自己的思维
描述领域之多