基本信息
- 原书名:Agile Web Development with Rails,Fourth Edition
- 原出版社: Pragmatic Bookshelf
- 作者: (美)Sam Ruby Dave Thomas David Heinemeier Hansson
- 译者: 慕尼黑Isar工作组 骆古道
- 丛书名: 华章专业开发者丛书
- 出版社:机械工业出版社
- ISBN:9787111374046
- 上架时间:2013-3-12
- 出版日期:2012 年3月
- 开本:16开
- 页码:345
- 版次:4-1
- 所属分类:计算机 > 软件与程序设计 > Rails/Ruby
计算机 > 软件与程序设计 > 网络编程 > 综合

编辑推荐
第16届Jolt震撼大奖获奖图书
在前3版的内容架构基础上,第4版增加了关于rails中新特性和最佳实践的内容。
内容简介
计算机书籍
《Web开发敏捷之道:应用Rails进行敏捷Web开发(原书第4版)》第1版曾荣获Jolt大奖“最佳技术图书”奖。在前3版的内容架构基础上,第4版增加了关于Rails中新特性和最佳实践的内容。本书从逐步创建一个真正的应用程序开始,然后介绍Rails的内置功能。全书分为3部分,第一部分介绍Rails的安装、应用程序验证、Rails框架的体系结构,以及Ruby语言的知识;第二部分用迭代方式创建应用程序,然后依据敏捷开发模式搭建测试案例,最终用Capistrano完成部署;第三部分有条不紊地补充缺少的知识并涵盖足以应付日常的实际工作。本书既有直观的示例,又有深入的分析,同时涵盖了Web应用开发中各方面的相关知识,堪称一部内容全面而又深入浅出的佳作。
《Web开发敏捷之道:应用Rails进行敏捷Web开发(原书第4版)》适合Ruby和Rails的初级、中级读者阅读,并可作为开发人员的参考手册。
作译者
Dave Thomas是“敏捷宣言”的作者之一,所以他了解敏捷性;因为他是《Programming Ruby》一书的作者,所以他又了解Ruby;又因为他是一位活跃的Rails开发者,所以他也了解Rails。
David Heinemeier Hansson,是Rails框架的创建者。
王大力,Ruby爱好者,自2005年底开始自学Rails,并加入中文社区,喜欢与国内爱好者交流学习心得,介绍国外Ruby的动态。收集整理过2006~2007年由国内外开发者开发的中文Rails应用,发起过R4R读书会,在国内爱好者老徐提供的共享空间上搭建Typo博客,录制过一些介绍Rails的视频,网名自诩铁道播客,在社区网站Railscn和Chinaonrails上使用的是个人业余无线电电台的呼号BD7LX。
王德志,1988年从西安交通大学计算机系研究生毕业后,从事VAX VMS系统管理员工作7年、IT项目经理和IT部门经理工作15年,在中国和加拿大成功实施过多个IT相关项目,拥有8种业界认可的专业技术证书,参与了包括中国科学院CAD开放实验室/国家智能中心在内的多种研究机构的科研课题,发表论文30余篇,独立或参与编译6本IT技术书籍,1997年获高级电子工程师资格。
陈宇翔,毕业于慕尼黑工业大学计算机系,现攻读博士,主攻图像处理、机器学习、模式识别等研究方向。
骆古道,骆古道(Gudao Luo),网名Cnruby,20世纪80年代初毕业于西北工业大学数理力学系,1988年公派留学德国,从事组合最优化理论研究,从90年代初期起一直致力于计算机领域软件开发、设计和管理等方面工作,个人博客为“道喜技术日记”和“天天红玉世界”。
姜伟,上海应用技术学院副教授、系副主任,主要从事计算机应用、企业信息化管理、系统工程、电子商务、管理信息系统等科研与教学工作。曾获部级科技进步奖(三等奖)一项、部级管理成果奖(二等奖)一项、省级自然科学奖(论文二等奖)两项、省部级优秀论文奖多项。
姜凯,2006年留学德国,毕业于慕尼黑工业大学电子系,研究方向为微处理系统及数据和图像处理。
胡捷,毕业于慕尼黑工业大学计算机专业,在全球著名IT咨询公司担任技术顾问和架构师。 在CRM领域的系统架构、实施计划、系统实施、系统集成、系统选型等方面具有多年工作经验。
黄力,现于慕尼黑工业大学土木学院攻读博士学位。专业方向是建筑信息模型,涉及针对初期设计模型的可持续发展分析以及钢-混凝土组合结构建筑模型自动生成的研究。
程帆,2007年留学德国,从慕尼黑工业大学计算科学与工程专业毕业后,担任软件工程师,主要从事芯片分析软件的开发工作。此外,对人工智能以及自动控制有浓厚兴趣。业余时间则主要专注于中文教学。
目录
对本书的赞誉
译者序
译者简介
第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
译者序
技术伴随着人类社会经济的发展而不断进步,Rails框架也不例外。今天的Rails框架已经从框架底层结构上进行了全面彻底革新;在框架开发结构上更进一步全方位软件模块化。可以说,Rails框架的每一次版本更新都包含了人们所期望的功能,让人感到振奋和喜悦,同时引领着软件框架发展的潮流。
放眼互联网世界,每一天都会呈现出无数的gem软件包。这些gem软件包提供了Rails框架的第三方资源。在本书中,作者推荐了一些十分优秀的gem软件包。这些资源不仅极大地丰富了Rails框架开发的需求,而且还避免了软件工程的重复劳动,提高了软件开发的效率和速度。
行动是成功的基础。普遍认为本书是Rails框架实践的经典之作,其作者就是该软件框架的创始人。在本书中,作者阐述了该框架最本质和最重要的内容。只有真正理解和认识Rails框架的本质,才能掌握和驾驭该框架的功能。当然,Rails软件框架同时也是软件理论研究的成果,源自于成千上万人的实践,是人类智慧的结晶和实践的成果。这种成果是发展的和动态的。因此,学习和认识Rails框架是无止境的。
每一次翻译工作都是一次新的挑战。如何理解不断出现的新概念、新理念和新名词?如何克服陈旧概念、思维定式对我们的影响?如何面对看似可以理解却难以用汉语表达的句子?面对这一切,一次思考不行,再来一次;一个人的能力不行,再补充一个;一遍修改不行,再来一遍。即便在本书正式出版以后,要是你有不同的想法和理解,我们欢迎与你重新斟酌每一条语句。
合作是我们大家完成此书的共同愿望。因此,在这里我首先要感谢为本书翻译和内部审稿付出辛苦劳动的所有慕尼黑Isar工作组同仁(按姓名笔画排序):王大力、王德志、陈宇翔、姜伟、姜凯、胡捷、黄力和程帆。其次我要感谢负责本书出版和尽心劳动的机械工业出版社陈冀康编辑及其同仁。最后我也要感谢我的妻子以及同仁的家人,是他们给予了我们每一个人最大的鼓励和支持,使得此次翻译工作得以圆满完成。
一天一年,我们好好阅读此书……
骆古道
于慕尼黑
前言
为什么会这样?
Rails就是让人感觉舒服
首先,大量的开发人员对其使用的Web应用程序开发技术感到失望,不论他们使用的是Java、PHP或是.NET—它们使开发人员的工作难度不断增加。正在这时,Rails出现了,它简单易学。
但是仅仅简单是不够的。我们谈论的是编写实实在在网站应用的专业开发人员。他们总是通过使用最新的、最专业的技术来让自己的应用程序能够经得起时间的考验。这些开发人员在深入Rails之后,就会发现它远不仅限于是开发网站的工具。
举例来说,所有的Rails应用程序都使用了模型-视图-控制器(Model-View-Controller,MVC)的结构。Java程序员通常使用的Tapestry 和 Struts 框架都是基于MVC的。但是Rails在应用MVC方面更进了一步:当你刚开始使用Rails开发时,你就已经处于一个工作状态的应用程序中了,每段代码都置于相应的位置,而且所有的应用程序段都以某种标准的方式交互。
专业的程序员总是编写相应的测试程序。Rails也同样提供了这方面的支持。所有Rails应用程序内置了对测试的支持。当在代码中加入新的功能时,Rails就会自动创建针对这项新功能的测试存根(stub)。Rails框架让应用程序的测试变得更容易,因此,Rails应用程序趋向于已经通过测试的应用程序。
Rails应用程序是用Ruby编写的,Ruby是一种现代的面向对象脚本语言。Ruby简练而容易理解,你可以通过Ruby自然而清晰地表述自己的想法,这使得使用Ruby编写程序很容易,而且即使几个月后再回顾代码时也很容易(这是很重要的)。
Rails通过给Ruby加上了一些限制和一些新颖的扩展,从而减轻了程序员的工作,而且程序变得更短小、更易读,并且Rails允许我们将以前需要在外部配置文件中才能完成的任务,放到代码库中来完成。这样一来,我们可以更容易地弄明白正在发生的是什么。下面的代码定义了一个项目中的模型类。现在你不必关心其中的细节,只需要注意在这短短几行代码中描述了多少信息即可。
在Rails中,有两个哲学观点使得Rails的代码短小易读:不要自我重复(Don抰 Repeat Yourself, DRY)和惯例重于配置(convention over configuration)。不要自我重复意味着:系统中的每个知识点只应该在一个地方描述一次。Rails借助了强大的Ruby来实现这一目标。在Rails应用程序中,你几乎看不到重复的代码,把需要表达的内容只放在一个地方—通常是符合MVC架构惯例的地方。使用其他Web框架的程序员大多有这样的经历:只要对程序结构做一点点修改,就必须同时修改好几处代码,这是一种灾难。
惯例重于配置也同样重要。Rails精准地定义了如何将应用程序拼接起来。只要遵循这些惯例,编写一个Rails应用程序所需的代码量远比使用XML配置的典型Java Web应用程序少得多。如果你不想应用这些惯例,在Rails中也可以很简单地实现。
除此之外,开发者还会在Rails中发现:它并没有给还很新的实际Web标准添乱,相反,它正在帮助定义这些标准。还有,Rails能让开发者更轻松地将Ajax和REST风格的接口之类的新技术整合到自己的应用中—它内置了对这些技术的支持(如果你还不熟悉Ajax和REST接口,别担心,我们会在本书后面介绍它们)。
开发者还需要经常担心应用程序的部署问题。而使用Rails,只需要输入一条命令,就可以将最新版本的应用程序部署到任意多台服务器上(如果发现上传的版本有问题,撤销也同样容易)。
Rails来源于实际的商用程序。创造一个框架最好的办法是:首先概括出特定应用的核心功能,然后从中抽取出通用的代码作为基础。在开发Rails应用程序时,你就会发现,一个出色的应用程序的一半已经有了。
当然,Rails还有其他优点—有些甚至很难言传。总之,Rails就是让人感觉很舒服。当然了,这要等到你自己动手写一些Rails的应用程序时才能体会到(这大概是下一个45分钟的任务……)。这也就是我们本书的主旨。
Rails是敏捷的
当你看到本书的书名的时候,可能会感到奇怪,为什么书里没有关于“在Rails中编写某某敏捷实践”这样的章节。
原因很简单:敏捷是Rails开发基础的一部分。
我们先来看看下面4条“敏捷开发宣言”所描述的价值观:
序言
自从第3版(实际上,包括第1版、第2版和第3版)出版以来,Rails改变了很多。Rails正处于重要的重构过程中,大部分是在其内部。因此,这一版从根本上抛弃了以前在代码中使用的一些特性,同时又加入了新的特性,还有我们从经验中得到的内容:使用Rails的最佳实践是什么。Rails现在可以运行在Ruby1.9上, 本书中的每一个例子都已在Ruby 1.8.7和Ruby 1.9.2中测试通过。
另外,Rails已经从一个流行的框架变为一个活跃的、充满生机的生态系统,而且许多流行插件和深度整合的第三方工具让它变得更完美。现在Rails逐渐变为一种主流工具,吸引了广大的开发人员到这个框架中来。
这使得我们需要重新组织这本书。根据读者反馈,许多Rails新手对开篇没有介绍Ruby而感到不适应,所以我们把这部分从附录里提到第一部分的第4章里。跟随第一部分内容一步步操作,从而构建一个真正的应用程序。为了把重点放在当前的最佳实践上,这一部分内容已经经过更新和简化。
本书最大的变动是最后一部分:因为它已经不适用于覆盖整个Rails系统,也跟不上其变化,现在这部分内容将专注于提供一个综合的视角,使读者能够了解可以找什么,当框架本身不能满足普通需求时,在哪里可以找到插件和相关工具来解决这个问题。
简而言之,这本书必须再一次修订。
Sam Ruby
2011年3月
媒体评论
这本书可以让读者用一种愉快且难忘的方式访问Rails环境,它在这方面做得非常出色。另外,我还是第一次见到一本书把MVC模式讲得如此合情合理、条理清楚,并通过实例消除了它的一切神秘感。——Ken Coar,作家、开源软件推行者和Apache开发者
这本书成功地满足了不同读者的需求,既是Rails(和Ruby)的趣味读物,又以平实的语言讲解了框架的高级属性,完全有别于在线文档。——Glen Daniels,独立技术专家和顾问
我从来没有读过像这本书一样成功的程序设计书籍。Sam把Ruby on Rails讲得通俗易懂,全面而有趣。——Keith Ballinger,WS-I的第一Basic Profile工作组主席、作家、.NET和Visual Studio .NET框架的主创人员