该书卜载自书部落-分享计算机经典巨著!-www.shubulocom仅供试看入入 4p第1章简介 到一份500页的规约说明书,只会看见一组用户和开发者共同发掘需求、寻找实现需求 的办法。你会发现,随着开发者和用户对试图解决的问题越来越了解,解决方案也会不 断变化。你会发现,这个团队在开发循环的初期就开始交付可以工作的软件。这个软件 的细节可能很粗糙,但它让用户可以亲身体验你所交付的东西 因此, Rails也鼓励着用户与开发团队合作。一旦看到 Rails项目能够以如此之快的 速度响应变化,客户就会开始相信开发团队能够交付自己真正需要的东西,而不仅仅是 自己所要求的东西。客户与开发团队之间的对抗将被建设性的讨论取代 说到底,这些都要归结到“响应变化”。 Rails强烈要求—甚至可以说是强迫——遵 循DRY原则,这就意味着一旦变化来临, Rails应用需要修改的代码量比用其他框架开发 的应用要少得多。而且,由于 Rails应用是用Ruby编写的,而Ruby又能够准确、简练地 描述程序概念,因此,变化也更加容易被限制在一个小模块内部,并且代码修改也更容 易。对单元测试和功能测试的强烈重视,以及对测试套件和mok对象的支持,又给了开 发者一张可靠的安全网,这是进行修改时不可或缺的。有了一组完善的测试作为保障,开 发者们将更有勇气面对变化 所以,我们觉得,与其想方设法地把 Rails应用的开发过程跟敏捷原则扯上关系,还 不如让 Rails框架自己来讲述这些原则。当阅读本书的“实例教学”部分内容时,请想象 你自己正在用这种方式开发web应用:跟客户坐在一起工作,共同决定每个问题的优先 级,然后共同为每个问题找到解决办法。然后,当读到后面的“深入参考”部分内容时 再考虑 Rails的结构能够怎样帮助你更快地满足用户需求。 最后一点关于敏捷和 Rails的提示:虽然这听起来有点不太专业,不过,请留意在 Rail中编写代码有多么愉快。 12读你所需 Finding Your Way Arou 本书的前两部分将介绍 Rails背后的概念,并提供一个不算太小的范例—我们将一 起构造一个简单的在线商店系统。如果你希望亲身体验一下 Rails编程的感觉,这是一个 不错的起点。实际上,大多数读者似乎乐于一边读书一边亲手构造这个示例应用。如果你 懒得敲键盘,也可以直接下载源代码(提供压缩的tar文件包和zp压缩包两种格式)。2 2下载地址http://www.pragmaticprogrammer.com/titles/rails2/code.html Web开发敏捷之道一应用Rais进行敏捷Web开发,第2版
4 到一份 5∞页的规约说明书,只会看见一组用户和开发省共同发掘需求、寻找实现需求 的办法.你会发现,随着开发者和用户对试图解决的问题越来越了解.解决方案也会不 断变化.你会发现,这个团队在开发循环的初期就开始交付可以工作的软件.这个软件 的细节可能很钮糙,但它让用户可以来身体验你所交付的东西 因此 i l 励着 与 开 队合 到R il 能够 之快 速度响应变化,客户就会开始相信开发网队能够交付自己真正衍耍的东西,而不仅仅是 自己所要求的东西.客户与开发团队之间的对抗将被建设性的时论取代 说到底,这些都耍归结到 "响应变化 Y原则.这就意味着一旦变化来临. il 要修 代码量 其他框 的应用要少得多.而且,由于 ai s应用是用 y编写的 .而 y又能够准确、简练地 描述程序概念,因此,变化也更加容易被限制在一个小模块内部,并且代码修改也!l!.容 。对单元测试和功能测试的强烈重视.以及对测试套件和 ock对象的支持,又给了开 发者一张可靠的安全网,这是进行修改时不可或缺的.有了一组完善的测试作为保障,开 发者们将更有勇气面对变化 所以,我们觉得 .与其想方设法地把 s应用的开发过程跟敏捷原则扯上关系 ,还 不如让 s框架臼己来讲述这些原则 当阅读本书的"实例教学"部分内容时.请想象 你白己正在)jJ这种方式开发 b应用 Jl' 起工 每个 ,然后共同为每个问题找到解决办法.然后 ,当读到后 "深入参考 "部分 内容 再考虑 i l s的结构能够怎样帮助你更快地满足用户需 最后一点关于敏捷和 i l s的提示虽然这昕起来有点不太专业 不过,诸留意在 i l 代码有多 么愉快 你所 Finding Your Around 本书的前两部分将介绍 ai s背后的概念,并提供一个不算太小的范例一一我们将 构造一个简单的在线商店系统.如果你希望亲身体验一下 i l s编程的感觉,这是一个 不错的起点.实际上,大多数读者似于乐于)边读书一边来字,构造这个示例应用。如果 懒得敲键 ,也可以 接下载源代码 提供压缩的 ta 件也和 ZI 压缩包两种格 0 2 , ht /www r a gm cpr og ramme i l 2 / WebJf lN. 一-,ffi 1J IN WebJf,l苦,第2 J!N 该书下载自-书部落-分享计算机经典巨著!--www.shubulo.com!仅供试看^_^
该书下载自-书部落-分享计算机经典巨著!-www.shubulo.com!仅供试看⌒ 1.2读你所需45 本书的第3部分(从第223页开始)则会详细介绍 Rails的诸多功能。如果你想弄清 一个组件怎么用、如何高效而安全地部署Rais应用,就请阅读这一部分。 在阅读的过程中,你会看到下列约定形式: 真实代码 本书中展示的代码片段大多来自真实运行的示例应用,你可以下载完整的应用 程序。为了帮助读者理解,如果一段代码能够在下载的应用中找到,在代码的上边 就会有一个路径指明它所在的文件,就像这样: work/demo1/appvcontrollers/say controller. rb class SayController Applicationcontroller def hello 这就是源代码文件在下载文件包中的路径。如果你阅读的是本书的PDF版本, 而且你的PDF阅读器又支持超链接的话,你可以直接点击页面上的标记,代码就应 该会出现在浏览器窗口中。某些浏览器(例如 Safari)会错误地将 rhtml模板解释为 HTML页面,如果发生这种情况,只须浏览页面的源代码即可看到真正的源码 Ruby贴士 没错,你需要懂Ruby才能写 Rails应用程序。不过我们明白,很多人在读本书 的时候其实已同时在学习Ruby和Rals了。本书的附录A(第633页)对Ruby语 言做了一个非常简单的介绍。当书中第一次用到某种Ruby特有的语言构造时,我 们会为它做一个指向该附录相关内容的交叉引用。譬如说,这段内容如果用到 了:name这个Ruby符号,在页边上就会有一个指示“符号”这种语言构造,在第-51 635页处有解释。另外,如果你不懂Ruby,或者想要快速刷新一下自己的记忆,你 可以首先翻到第633页,阅读附录A。书中有很多Ruby代码,要是对Ruby-一窍不 通的话 Davd说… 你会不时地看到“Davd说……”这样的边框,其中的内容是 David Heinemeier Hansson想要与你分享的、关于 Rails的独特见解—原理、技巧、推荐,凡此种 种。 David是Rais的创始人之一,所以,如果你想成为 Rails专家的话,这些内容 是不容错过的 问 Joe是一个虚构的开发者形象,他常常会针对我们在书中讲解的内容提些问 题,而我们则会试着回答这些问题。 Web开发敏捷之道一应用Rais进行敏捷Web开发,第2版
1. 2读仰所 本书的第 3部分(从第 3页开始〉贝J会详细介绍 巾的诸多功能.如果你想弄清 么用 如何高效而 地部 读这一部分. 在阅读的过程中,你会看到下列约定形式 真实代码 本书中展示的代码片段大多来自真实运行的示例应用,你可以下载完整的应用 程序.为了帮助读者理解.如果一段代码能够在下载的应用中找到,在代码的上边 就会有一个路径指明它所在的文件,就像这样 work1demo1/app!∞ntrollerslsa以contr创ler.rb class SayController < ApplicationController def hell end end 这就是源代码文件在下载文件包中的路径.如果你阅读的是本书的 F版本, 而且你的 F阅读器又支持超链接的话,你可以直接点击页面上的标记,代码就应 该会出现在浏览器窗口中.某些浏览器(例如 i)会错误地将 l樵板解释为 HTML 页丽 生这种情况 须浏览页面的源代 看到 正的源码 Ruby 没错,你需要懂 y才能写 s应用程序.不过夜们明白,很多人在读本书 的时候其实己同时在学习 y和 i l s了 .本书的附录 (第 3页〕对 y语 言做了一个非常简单的介绍。当书中第一次 到某种 y特有的语言构造时 JQ 们会为它做一个指向该附录相关内容的交叉引用 .譬如说 ,这段 内容如 用到 ame这个 y符号,在页边上就会有一个指示 "符号"这种语言构造,在第 35 处有 如果你不懂Ruby. 想要快速刷新 记忆 可以首先翻到第 3页 ,阅读附录 .书中有很多 y代码 .要是对 u b y 一窍不 通的话 . . David i~ ...... 你会不时地看到" Da vid 说……" 容是 Heineme an on 要与 你分享 于Rail s 独特见解 原 推荐 凡此 avid 是Rail s 创始人 果你想成为Rail 专家 这些 是不容错过的 Joe .. Joe 个 虚 构 开发 形象 他常 常会 对我 讲解 提些 ,而我们则会试着回答这些问题 Web 1'!n2il!一-,5fm Rails 且IJff¥MWebHJ 第2 /!ff me - 635 J 该书下载自-书部落-分享计算机经典巨著!--www.shubulo.com!仅供试看^_^
该书下载自-书部落-分享讦算机经典巨著!-www.shubulo.com!仅供试看^^ 6p第1章简介 这不是一本 Rails参考手册,我们将展示大部分模块和方法,可能是通过示例,也可 能是通过文字介绍,但我们不会列出上百页的AP列表。这么做的原因是,只要你装上 Rails,就已经得到了完整的API文档,而且肯定比本书的内容更新。如果你通过 Ruby Gems安装了 Rails(这也是我们推荐的安装方式),只要启动Gem文档服务器(使 用 gem server命令),再用浏览器访问htep:/oca1host:8808,你就可以访问所有 的 Rails Ap文档(第29页的补充信息介绍了另一种安装完整AP文档的方式) Rails的版本 Rails versions 本书所介绍的是Rail1.2版 如果你所使用的不是 Rails1.2,那么就需要首先升级Ral,然后才能运行本书中的 代码。如果Rail1.2还没有正式发布(在本书付印之时官方的Gem还没有发布),你也 可以去下载一个正式发布之前的中间版本。 13致谢 Acknowledgments 也许你会认为,写一个第2版的书应该是很容易的事情—毕竟已经有第1版在那 儿了,无非是再对代码和文字做些小修小改罢了。这能有多费劲呢? 我也很难讲清楚……不过我感觉给这本 Agile Web Development with Rails写第2版所 耗费的精力丝毫不亚于写第1版。 Rails一直在发展,所以这本书也一直跟着它发展。就 拿 Depot应用来说吧,整个应用都作了调整,其中的某些部分更是被重写了三四次。 强调REST、并且增加了废弃( deprecation)机制,这都对本书的结构造成了影 响——曾经热门的东西不再热门了,又出现了新的热门。 所以,如果没有Ruby和 Rails社区的大力帮助,本书根本就不会存在。一开始,本 书是以“beta图书”的方式发行的:我们以PDF文件的形式发布了较早的版本,读者们 很快地通过网络提出反馈—他们给了我们超过1200条建议和错误报告。众人的智慧 融合一处,给这本书提升了巨大的价值。所以,谢谢大家,感谢你们对“beta图书”的 支持,更感谢你们贡献了那么多宝贵的反馈意见。 和撰写第1版时的情况一样,Rail核心团队给了我们巨大的帮助:回答我们的问 题,检查我们的代码,修复其中的代码。感谢你们: 译者注:读者不必担心这个问题,Rail12已经正式发布了 Web开发敏捷之道一应用Rais进行敏捷Web开发,第2版
6 这不是一本 il s参考手册 ,我们将展示大部分模块和方法,可能是通过示例 ,也可 能是通过文字介绍,但我们不会列出上同页的 71 做的 只 要你装上 ail s 完 整 的API 文 挡 肯 定 果 你 yO 了Rails (这也是我们推荐的安装方式) .只要启动 m文档服务器(使 e r 命令 再用 浏 览器 t t o c a B 0 8 所有 API 文档 2 9 页 的补充 整A 挡的 Rails 版本 Rails Versions 本书所介绍的是 1. 如!I!你所使用的不是 1. 先 升 才能 行本书 代码.如果 i l 1. 还没布 式发布 在本书付 还没有发布 可以去下载一个正式发布之前的中间版本. 1·3 致谢 Acknowlcdglllcnts 也许你会认为,写-个第 2版的书应该是很容易的事情毕竟已经有第l版在那 儿了,无11')在再对代的和文字做些小修小改罢了.这flW多货到 J< 沽 楚 给这本 Development with il 挺货的精力丝毫不亚于写第 l版。 一且在发展,所以这本书也直跟着它发展。就 po 更 是被重 Rails 1. 并且 废弃 c a t i 机制 结构 响-一曾经热门的东西不再热门了 ,又山现丁新的热门 所以 ,如果没有 y和 i l s社区的大力帮助 ,本书根本就不会存在。 一开始.本 书是以 a图书"的方式发行的孜们以 F文件的形式发布了较早的版本,读者们 很快地通过网络提出反馈 一他们给了我们超过 建议和错误 的智 融合一处,给这本书提升了巨大的价值.所以.谢谢大家,感谢你们对 be a图书"的 支持,更感谢你们贡献了那么多宝贵的反馈店、见 和撰写第 1版时的情况一样 i l 的帮 ,检查我们的代码,修复其中的代码.感谢你们 .蜂者 ,王读者不必担心这个问趟 Rails WeblfJt :Z &I房Rails If~Web lf, /i& 该书下载自-书部落-分享计算机经典巨著!--www.shubulo.com!仅供试看^_^
该书下载自-书部落-分享计算机经典巨著!-www.shubulo.com!仅供试看^^ 13致谢 Scott Barron(htonl), Jamis Buck(minam), Thomas Fuchs(madrobby ), Jeremy Kemper(bitsweat), Michael Koziarski(nzkoz), Marcel Molina Jr, (noradio), Rick Olson (technoweenie), Nicholas Seckar(Ulysses), Sam Stephenson(sam), Tobias Lutke(xal)D 及 Florian we 我还要感谢那些对本书中具体章节作出贡献的人: Leon Breedt, Mike Clark, James Duncan Davidson, Justin Gehtland C.& Andreas Schwarz 每次写书时我都暗下决心:再也不写下一本书了,因为那就意味着我又得跟家人分 别好几个月。所以,再一次地感谢你们: Juliet, Zachary和Heny感谢你们所做的 切 Dave Th 2006年11月 dave@pragprogce 这本 Agile Web ith rails 我在我们家当地的书店里看见它了,它看起来很棒!” Dave的妈妈 Web开发敏捷之道一应用Rais进行敏捷Wb形发,第2版
1. 致谢 <II 7 Scott Barron (htonl), Jarnis Buck (minam), Thomas Fuchs (madrobby), Jeremy ec rn e n ts Nichola Michael Ko s Seck ziarski Ulysses n zk Sam Stephenson Marcel Molina (sam) Jr, , no To ra bias LUtke 01 l) … ri an Weber (csshsh). 我还要感谢那些对本书中 具体章节作出贡献的人 Leon Breedt, Mike Clark, James Duncan Davidson. Justin Gehtl and 及Andreas Schwarzo 每次写书时我都附下决 z再也不写下 本书了 ,因为那就意味着我又得跟家人分 别好儿个月 。所以 一次地感谢你们 li zachary Henry 谢你 所做 DaveThomas ∞6 年11 dave@pragprog.com "这本 il e vel nl with Rails·· · ..· 在我 京当地的书店里看见它丁,它看起来很棒 " Web 开2 '2Jli 用Rails ilIfjlNH Web Jf 1t& 该书下载自-书部落-分享计算机经典巨著!--www.shubulo.com!仅供试看^_^
该书下载自-书部落-分享计算机经典巨著!-www.shubulo.com!仅供试看^ 第1部分起步 Part I Getting Started Web开发敏捷之道—应用Rals进行敏捷Web开发,第2版
- 1部分起步 Part I Getting Started Web lfJtIi il! ,ffi il li 开发 1!N 该书下载自-书部落-分享计算机经典巨著!--www.shubulo.com!仅供试看^_^