编辑推荐
适读人群:程序员、软件架构师
《Rails敏捷开发》荣获Jolt技术图书大奖。是深受欢迎的Rails开发教程。适合Ruby和Rails的初级、中级读者阅读,并可作为开发人员的参考手册。内容简介
《Rails敏捷开发》荣获Jolt技术图书大奖。《Rails 5敏捷开发》以讲解“购书网站”案例为主线,逐步介绍Rails的内置功能。《Rails 5敏捷开发》分为3部分,第yi部分介绍Rails的安装、应用程序验证、Rails框架的体系结构,以及Ruby语言知识;第二部分用迭代方式构建应用程序,然后依据敏捷开发模式开展测试,后用Capistrano完成部署;第三部分补充日常实用的开发知识。《Rails 5敏捷开发》既有直观的示例,又有深入的分析,同时涵盖了Web开发各方面的知识,堪称一部内容全面而又深入浅出的佳作。第5版增加了关于Rails5和Ruby2.2新特性和佳实践的内容。作者简介
SamRuby是W3CHTML工作组的联合主席,曾为Apache软件基金会(ApacheSoftwareFoundation)的多个开源项目做出积极贡献。他也是IBM新兴技术组(EmergingTechnologiesGroupofIBM)的高级技术专家。
DaveThomas是“敏捷宣言”的起草人之一,也是《ProgrammingRuby》的作者。作为活跃的Rails开发者,他对Rails有着深刻的理解。
DavidHeinemeierHansson是Rails框架的创造者。精彩书评
《Rails 5敏捷开发》的内容组织得非常出色。前两部分介绍如何构建Rails应用,演示项目简单易懂,全面展示了Rails为开发者创造的价值。第三部分的很多议题也很有价值。总而言之,这是一本好书,值得继续向Rails新手推荐!
?JeffHolland
Ackmann&Dickenson公司高级软件工程师目录
第一部分新手入门1
第1章安装Rails3
1.1在Cloud9上安装Rails4
1.2在虚拟机上安装Rails6
1.3在Windows上安装Rails8
1.4在MacOSX上安装Rails11
1.5在Linux上安装Rails12
1.6Rails版本的选择14
1.7设置开发环境14
1.8Rails和数据库18
1.9本章所学19
第2章牛刀小试21
2.1新建Rails应用21
2.2Hello,Rails!24
2.3把页面连接起来30
2.4如果发生错误33
2.5本章所学36
2.6练习题36
2.7清理工作37
第3章Rails应用的架构39
3.1模型、视图和控制器39
3.2Rails对模型的支持42
3.3ActionPack:视图和控制器44
第4章Ruby简介47
4.1Ruby是面向对象的语言47
4.2数据类型49
4.3控制逻辑53
4.4组织结构56
4.5对象的序列化59
4.6综合应用59
4.7Ruby惯用法60
第二部分构建一个应用63
第5章Depot应用65
5.1增量开发65
5.2Depot应用的功能66
5.3开始编写代码70
第6章任务A:创建应用71
6.1迭代A1:实现产品维护功能71
6.2迭代A2:美化产品列表78
6.3本章所学84
6.4练习题85
第7章任务B:验证和单元测试87
7.1迭代B1:验证!87
7.2迭代B2:模型的单元测试92
7.3本章所学99
7.4练习题100
第8章任务C:实现产品目录页面101
8.1迭代C1:创建产品目录列表101
8.2迭代C2:添加页面布局105
8.3迭代C3:通过辅助方法格式化价格110
8.4迭代C4:控制器的功能测试111
8.5迭代C5:缓存局部结果113
8.6本章所学115
8.7练习题116
第9章任务D:创建购物车117
9.1迭代D1:查找购物车117
9.2迭代D2:把产品放入购物车118
9.3迭代D3:添加按钮121
9.4本章所学126
9.5练习题127
第10章任务E:更智能的购物车129
10.1迭代E1:创建更智能的购物车129
10.2迭代E2:错误处理135
10.3迭代E3:完成购物车的开发139
10.4本章所学143
10.5练习题143
第11章任务F:添加少量Ajax代码145
11.1迭代F1:移动购物车146
11.2迭代F2:创建基于Ajax的购物车153
11.3迭代F3:突出显示更改157
11.4迭代F4:隐藏空购物车160
11.5迭代F5:通过ActionCable广播更改164
11.6本章所学167
11.7练习题168
第12章任务G:去结算!169
12.1迭代G1:获取订单169
12.2迭代G2:Atom订阅源183
12.3本章所学186
12.4练习题186
第13章任务H:发送电子邮件189
13.1迭代H1:发送确认邮件189
13.2迭代H2:应用的集成测试196
13.3本章所学201
13.4练习题201
第14章任务I:用户登录203
14.1迭代I1:添加用户203
14.2迭代I2:用户身份验证207
14.3迭代I3:访问限制213
14.4迭代I4:在侧边栏中添加几个管理链接215
14.5本章所学219
14.6练习题219
第15章任务J:国际化221
15.1迭代J1:区域的选择222
15.2迭代J2:在线商店店面的翻译226
15.3迭代J3:结算页面的翻译233
15.4迭代J4:添加区域设置选择器239
15.5本章所学241
15.6练习题241
第16章任务K:部署上线243
16.1迭代K1:使用PhusionPassenger和MySQL部署245
16.2迭代K2:通过Capistrano远程部署252
16.3迭代K3:检查部署后的应用258
16.4本章所学260
16.5练习题261
第17章Depot应用开发回顾263
17.1Rails中的概念263
17.2记录已完成的工作266
第三部分深入探索Rails267
第18章Rails内部概览269
18.1目录结构269
18.2命名约定277
18.3本章所学280
第19章ActiveRecord281
19.1定义数据281
19.2识别和关联记录286
19.3创建、读取、更新和删除(CRUD)290
19.4参与监控过程304
19.5事务310
19.6本章所学314
第20章ActionDispatch和ActionController315
20.1把请求分派给控制器316
20.2处理请求325
20.3跨请求的对象和操作337
20.4本章所学345
第21章ActionView347
21.1使用模板347
21.2生成表单349
21.3处理表单352
21.4在Rails应用中上传文件354
21.5使用辅助方法357
21.6利用布局和局部模板减少维护投入364
21.7本章所学372
第22章迁移373
22.1创建和运行迁移373
22.2迁移详解376
22.3管理表380
22.4高级迁移技术385
22.5迁移的问题388
22.6在迁移外部处理模式389
22.7本章所学390
第23章非浏览器应用391
23.1使用ActiveRecord开发独立应用391
23.2使用ActiveSupport编写库函数392
23.3本章所学397
第24章Rails的依赖399
24.1使用Builder生成XML399
24.2使用ERB生成HTML401
24.3使用Bundler管理依赖403
24.4使用Rack与Web服务器交互406
24.5使用Rake自动执行任务409
24.6Rails依赖概览411
24.7本章所学414
第25章Rails插件415
25.1使用ActiveMerchant处理信用卡415
25.2使用Haml美化标记417
25.3分页420
25.4本章所学422
25.5在RailsPlugins.org中寻找更多插件422
第26章长路漫漫425
附录A参考书目427
索引429精彩书摘
《Rails5敏捷开发》是快速掌握Rails开发的佳资源。
?PrathameshSonpatki
BigBinary公司总监,Rails问题审核团队成员
不管使用哪种语言进行Web开发,《Rails 5敏捷开发》都值得一看!
?CharlesStran
TheBlaze公司产品工程与设计总监
这《Rails 5敏捷开发》的新版依然很棒,在Rails开发时我反复参考。它是关于Rails开发的佳图书之一。
?StephenOrr
Siftware公司高级开发工程师前言/序言
如果说Rails是世界上开发效率高的Web开发框架,恐怕没有人会有异议。Rails以其“约定胜于配置”的先进设计理念和对Ruby语言元编程能力的娴熟应用,创造了Web开发框架历史上的一个奇迹。从开始流行至今,Rails一直都是其他语言开发框架的模仿对象,例如PHP语言的Yii框架、Python语言的Django框架,等等。一直被模仿,从未被超越,这句话放在Rails身上真是恰如其分。
从商业应用的角度看,互联网从兴起到现在已经经历了Web1.0、Web2.0和移动互联网时代,正在进入人工智能和物联网时代。而移动互联网本身经历了2G、3G和4G时代,即将进入5G时代。未来,移动互联网仍将是重要的基础设施和商业竞争的主战场,因此Web应用不仅不会走向夕阳薄暮,反而会迎来一个更加蓬勃的春天。在这样一个背景下,Rails将继续成为程序员手中的利器,帮助创业者和商业公司在时代潮头横刀立马。
作为RubyChina社区(https://ruby-china.org)的用户,译者一直为国内Ruby社区融洽的氛围和高质量的讨论内容而感到庆幸不已,同时也想尽自己的绵薄之力回馈社区。对于Rails程序员来说,入门和提高都不是一件易事,这不仅因为Ruby语言表达能力极强、灵活多变,更因为Rails本身功能完备、包罗万象。可以说,Rails开发就像演奏音乐,既可以行云流水,也可以凝滞生涩,强者以一当十、游刃有余,弱者步履蹒跚、漏洞百出,两者高下立判。因此,学习Rails尤其需要名师和秘籍,不仅要领新手入门、扶上马、送一程,更要能帮助开发者掌握要领、理清思路、拓宽视野,为继续修行提高指明方向、注入动力。《Rails5敏捷开发(第5版)》正是这样一本绝世好书,入门提高兼宜。我们也为能有机会翻译这样一本好书而不胜欣喜。
在策划和翻译《Rails 5敏捷开发》的过程中,华中科技大学出版社的徐定翔老师和RubyChina社区的各位同仁给予了热情鼓励和实际帮助,在此一并表示感谢。同时也要感谢家人的理解和包容,正是在你们的支持下,长达数月的翻译过程才能终走向胜利的长征,让一切的艰辛和付出都有了回报。
《Rails 5敏捷开发》承蒙大疆Ruby技术团队的审校,他们为《Rails 5敏捷开发》译稿提供了众多宝贵意见,特此感谢!当然,书中若仍有不当之处,所有责任都在译者自身。
希望译者的工作成果能够为大家学习Rails助一臂之力。后,以一句结语和大家共勉:学习Rails,永远在路上!
译者
2017年9月10日