应用Rails进行敏捷Web开发——目录

   

1  简介... 1

1.1  Rails是敏捷的... 3

1.2  读你所需... 4

Rails的版本... 6

1.3  致谢... 6

来自Dave Thomas的感谢... 7

来自David Heinemeier Hansson的感谢... 7

2  Rails应用的架构... 11

2.1  模型,视图,以及控制器... 11

2.2  Active RecordRails的模型支持... 15

数据库为中心的程序设计... 15

对象/关系映射(ORM... 17

2.3  Action Pack:视图与控制器... 19

视图支持... 19

还有……控制器!... 19

3  安装Rails. 21

3.1  Windows上的安装... 21

3.2  Mac OS X上的安装... 22

3.3  Unix/Linux上的安装... 22

3.4  Rails和数据库... 23

3.5  保持更新... 26

3.6  RailsISP. 26

4  立竿见影... 27

4.1  新建一个应用程序... 27

4.2  Hello, Rails! 29

Rails和请求URL. 30

我们的第一个action. 31

让它动起来... 33

4.3  把页面链起来... 39

4.4  我们做了什么... 43

5  Depot应用程序... 47

5.1  增量式开发... 47

5.2  Depot做些什么... 48

用例... 48

页面流... 50

数据... 52

5.3  让我们编码吧... 53

6  任务A:货品维护... 53

6.1  迭代A1:跑起来再说... 53

创建Rails应用程序... 53

创建数据库... 54

创建货品表... 54

配置应用程序... 55

创建“货品维护”应用... 56

Rails脚手架... 58

6.2  迭代A2:填加缺失的字段... 61

6.3  迭代A3:检查一下!... 64

6.4  迭代A4:更美观的列表页... 67

我们做了什么... 70

7  任务B:分类显示... 71

7.1  迭代B1:创建分类列表... 71

7.2  迭代B2:添加页面装饰... 74

我们做了什么... 77

8  任务C:创建购物车... 79

8.1  Session. 79

8.2  更多的表,更多的模型... 81

8.3  迭代C1:创建购物车... 83

美化购物车... 89

8.4  迭代C2:处理错误... 91

Flash. 92

8.5  迭代C3:完成购物车... 95

我们做了什么... 99

9  任务D:结帐!... 101

9.1  迭代D1:获得定单... 102

Rails和表单... 103

9.2  迭代D2:在付账页面显示购物车内容... 110

我们做了什么... 114

10  任务E:发货... 115

10.1  迭代E1:基本的发货功能... 115

我们做了什么... 123

11  任务F:管理... 125

11.1  迭代F1:添加用户... 125

11.2  迭代F2:登录... 130

11.3  迭代F3:访问控制... 132

没有管理员了……... 133

更新边栏... 134

用户登出... 135

11.4  扫尾... 136

11.5  蛋糕上加点奶油... 137

我们做了什么... 138

12  任务T:测试... 139

12.1  加上测试... 139

12.2  模型的测试... 140

你的第一个测试,已经在等你了... 141

用于测试的数据库... 142

测试夹具... 143

创建和读取... 145

更新... 146

销毁... 147

保持测试的灵活性... 148

测试模型的业务规则... 149

动态夹具... 150

为了共享的夹具... 151

测试助手... 153

自定义断言... 154

12.3  控制器的测试... 155

用户登录... 155

功能测试的便利工具... 159

已经买了东西!... 163

12.4  使用Mock对象... 168

12.5  测试驱动开发... 169

12.6  Rake运行测试... 172

创建测试数据库... 172

运行测试... 173

安排持续构建... 174

生成统计信息... 174

12.7  性能测试... 175

事务性夹具... 177

性能监控与评测... 178

我们做了什么... 178

13  深入Rails. 181

13.1  Rails在哪儿?... 181

13.2  目录结构... 181

13.3  Rails配置... 185

运行时环境... 185

配置数据库连接... 186

环境... 187

配置参数... 188

13.4  命名约定... 188

混合大小写,下划线,以及复数形式... 188

按模块组织控制器... 191

13.5  Active Support 192

对“数量”的扩展... 192

对时间的扩展... 193

字符串的扩展... 194

13.6  Rails的日志... 194

13.7  调试信息... 194

13.8  精彩预告... 196

14  ActiveRecord基础... 1

14.1 表和类... 1

14.2 字段和属性... 2

属性的访问... 4

Boolean型属性... 4

保存结构化数据... 5

14.3 主键与ID.. 6

14.4 连接数据库... 7

14.5 CRUD.. 8

新建记录... 9

读取现有记录... 10

14.6 表间关联... 19

创建外键... 20

指定关联... 21

一对一关联... 22

一对多关联... 25

多对多关联... 29

自引用的连接... 31

预先读取子记录... 32

计数器... 33

14.7 事务... 34

内建事务... 38

多数据库事务... 38

15  再论ActiveRecord. 1

15.1 Acts As 1

Acts As List 1

Acts As Tree. 3

15.2 聚合... 4

复合对象是值对象... 8

15.3 单表继承... 8

15.4 校验... 11

校验辅助方法... 12

15.5 回调... 17

记录时间戳... 18

回调对象... 19

Observer 22

15.6 高级属性... 22

Façade字段... 24

15.7 杂录... 25

对象ID.. 25

使用裸连接... 25

缺失ID的时候……... 26

魔术字段... 26

16  ActionControllerRails. 289

16.1  环境与依赖... 289

16.2  基础... 290

16.3  请求的路由... 291

URL生成... 294

控制器命名... 298

具名路由... 301

16.4  Action方法... 302

控制器环境... 303

应答... 304

模板的渲染... 305

发送文件和其他数据... 308

重定向... 309

16.5  CookieSession. 312

RailsSession对象... 313

16.6  Flash——Action之间的通信... 322

16.7  过滤器与校验... 324

前置/后置过滤器... 324

后置过滤器和应答篡改... 326

环绕过滤器... 327

过滤器的继承... 327

输入校验... 327

16.8  缓存初接触... 329

缓存什么... 331

缓存页面的失效策略... 332

16.9  GET请求的问题... 335

解决GET问题... 336

17  ActionView.. 339

17.1  模板... 339

模板在哪里... 339

模板的运行环境... 340

模板里面有什么... 340

17.2  Builder模板... 341

17.3  RHTML模板... 342

转义替换... 343

17.4  辅助方法... 344

共享辅助方法... 346

17.5  格式化辅助方法... 347

17.6  链接到别的页面或资源... 349

17.7  分页... 352

17.8  表单辅助方法... 353

表单辅助方法... 354

字段辅助方法... 354

Rails应用的文件上传... 361

错误处理与模型对象... 364

处理与模型对象无关的字段... 365

17.9  布局与组件... 367

布局... 367

寻找布局模板... 368

局部页面模板... 370

组件... 373

17.10  再论缓存... 377

缓存片段的失效... 379

片段缓存的存储选择... 380

17.11  新增模板系统... 381

创建动态模板... 382

18  Web 2.0. 339

18.1  AJAX简介... 339

XMLHttpRequest 341

AJAX的“A”. 341

18.2  Rails的做法... 342

link_to_remote. 343

form_remote_tag() 345

Observers. 346

定时更新... 349

18.3  再论用户界面... 350

文档对象模型操作... 350

可视化效果... 351

18.4  高级技巧... 355

替换技术... 355

再谈回调... 355

不需要AJAX的可视化效果... 361

测试... 362

向后兼容... 363

Web V2.1. 364

19  ActionMailer. 411

19.1  发送邮件... 411

邮件配置... 411

发送邮件... 413

19.2  接收邮件... 418

19.3  电子邮件的测试... 420

电子邮件的单元测试... 420

电子邮件的功能测试... 421

20  Web ServiceRails. 423

20.1  AWS是什么(以及不是什么)... 423

20.2  API定义... 424

方法签名... 427

20.3  分发模式... 429

直接分发... 430

分层分发... 430

委派分发... 430

20.4  使用别的分发机制... 432

分层分发模式... 432

实现委派分发... 433

20.5  拦截方法调用... 433

20.6  Web Service的测试... 435

外部客户应用(SOAP... 436

外部客户应用(XML-RPC... 436

20.7  协议客户端... 438

21  保护Rails应用... 439

21.1  SQL注入... 439

防御SQL注入攻击... 440

将查询变成模型对象的方法... 441

21.2  跨站点脚本(CSS/XSS... 442

一次典型的攻击... 442

防御XSS攻击... 443

利用echo服务的XSS攻击... 444

21.3  防御session定置攻击... 445

21.4  Creating Records Directly from Form Parameters 446

21.5  不要相信ID参数... 447

21.6  不要暴露控制器方法... 448

21.7  文件上传... 450

21.8  不要缓存需要身份认证的页面... 450

21.9  知己知彼... 451

22  部署与伸缩... 453

22.1  选择发布平台... 453

选择web服务器... 454

选择伺服模式... 458

22.2  运行环境的三位一体... 461

切换到生产环境... 462

22.3  荒野中的迭代... 463

处理错误... 463

发布变更... 465

在控制台监视应用程序... 466

22.4  维护... 467

日志文件... 467

清扫session. 468

22.5  伸缩:无共享架构... 469

Rails提供无共享环境... 469

22.6  寻找并解决性能瓶颈... 472

tail监控日志... 473

超越tail 474

22.7  案例分析:每天运行的Rails 476

37signals开发的Basecampwww.basecamphq.com... 477

Robot Co-op开发的43 Thingswww.43things.com... 477

抵押处理引擎(www.rapidreporting.com... 478

附录A  Ruby简介... 481

A.1  Ruby是一种面向对象的语言... 481

A.2  Ruby中的名称... 482

A.3  方法... 483

A.4  ... 485

privateprotected. 487

A.5  模块... 487

A.6  数组与hash. 488

hash与参数列表... 489

A.7  控制结构... 489

A.8  正则表达式... 490

A.9  代码块与迭代器... 490

A.10  异常... 491

A.11  对象序列化... 492

A.12  交互式的Ruby. 492

A.13  Ruby惯用法... 493

A.14  RDoc文档... 494

附录B  配置参数... 481

B.1  ActiveRecord配置... 481

B.2  ActionPack配置... 482

B.3  ActionMailer配置... 484

B.4  TestCase配置... 484

附录C  源代码... 481

C.1  完整的Depot应用... 481

数据库文件... 481

辅助模块... 482

单元测试和功能测试... 482

性能测试... 482

CSS文件... 482

C.2  系统提示程序范例... 482

C.3  代码示例交叉引用... 483

附录D  资源... 481

D.2  推荐书目... 481

索引... 533

更多精彩陆续放送,敬请关注! 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
英文新版:Agile Web Development with Rails, 4th Edition(For Rails 3.1 & 3.2) 内容简介 《Web开发敏捷之道:应用Rails进行敏捷Web开发(第3版)》主要分为两大部分。在“构建应用程序”部分中,读者将看到一个完整的“在线购书网站”示例。在随后的“Rails框架”部分中,作者深入介绍了Rails框架的各个组件。除了上述两部分外,对Rails缺乏了解的读者应该首先阅读“起步”部分,通过一个最简单的应用示例感性了解这个时下热门的web框架。不熟悉Ruby的读者应该阅读“附录”部分中的“Ruby简介”,以便了解Ruby的基本语法与常见用法。 《Web开发敏捷之道:应用Rails进行敏捷Web开发(第3版)》第1版曾荣获Jolt大奖“最佳技术图书”奖。在前两版的内容架构基础上,第3版增加了对Rails 2中新特性和最佳实践的内容介绍。相比第2版中的内容,Rails 2增加了REST、资源、轻量级web service等新特性。《Web开发敏捷之道:应用Rails进行敏捷Web开发(第3版)》涵盖了这些全新的内容,因此能更好地体现出Rails框架的发展现状。 整体而言,全书既有直观的实例,又有深入的分析,同时还涵盖了web应用开发中各方面的相关知识,堪称一部内容全面而又深入浅出的佳作。 编辑推荐 《Web开发敏捷之道:应用Rails进行敏捷Web开发(第3版)》:Ruby on Rails是一个全套的MVC web框架,它能帮你开发高质量又美观的web应用,而且开发速度快得出乎你想象。你只须集中精力于应用程序本身,Rails就会帮你搞定一切琐事。你甚至不需要写哪怕一行JavaScript代码,就能开发出支持各种JavaScript功能的应用程序。这几年来,Rails一直在发展,这《Web开发敏捷之道:应用Rails进行敏捷Web开发(第3版)》也一直随它一起发展。和前两版一样,我们还是先带领读者一步步构造一个真实的应用程序,然后深入介绍Rails内建的各种特性;和前两版不同,我们在第3版中重点介绍了Rails对“资源”的支持,并推荐了当今Rails开发者们的最佳实践。 在《Web开发敏捷之道:应用Rails进行敏捷Web开发(第3版)》中,你将可以…… ·跟随一个完整的教程,亲手编写一个基于web的在线商店; ·了解Rails如何消除烦人的配置与琐事; ·学会如何开发国际化的应用程序; ·看到如何在应用程序中融入Ajax、RES'T、webservices和e-maJl处理; ·在编写应用程序的同时,用内建的单元测试、功能测试和集成测试框架来测试应用程序; ·还有,轻松又安全地部署应用程序。 《Web开发敏捷之道:应用Rails进行敏捷Web开发(第3版)》基于:Rails2,在此前版本的基础上做了大量修订。 作者简介 作者:(美国)鲁比(Sam Ruby) (美国)托马斯(Dave Thomas) (美国)汉森(David Heinemeier Hansson) 译者:林芷薰 合著者:透明 鲁比(Sam Ruby),是一位杰出的软件开发者,他为Apache软件基金会下属的很多开源软件项目做出过重要的贡献,他主持的Atom web feed标准和广为使用的厂eedvalidatororg web service对web feeds的标准化起到了重要作用。他目前是IBM“创新技术组”的资深技术人员。 托马斯(Dave Thomas),作为《敏捷宣言》的起草人之一,他理解敏捷。作为《Programming Ruby》的作者,他理解Ruby。作为一位活跃的Rails开发者,他理解Rails。 汉森(David Heinemeier Hansson),是Rails框架的缔造者。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值