出版时间:2007年06月 出版社:人民邮电出版社 作者:David Black 页数:386 字数:616000 译者:吴畅欣,张明生
Tag标签:无
内容概要
本书是一部专门为Rails实践而写的经典Ruby著作,由四部分组成,共17章。第一部分讲述Ruby和Rails的编程环境。第二部分和第三部分与Rails紧密联系,着重对Ruby这门语言进行详细介绍;所采用的Rails应用示例,既说明了Ruby的特性,也给出了有关Rails的重要信息。第四部分讲述了如何应用第二部分和第三部分的Ruby知识来开发Rails应用。 本书适合于Ruby的初学者,也适合于想要进一步提高Ruby编程技能,开发实际Rails应用的Web程序员。
作者简介
David A.Black世界顶尖的Ruby和Rails专家、Ruby和Rails的主要倡导机构之一Ruby Central(RbyConf和RailsConf主办者)的负责人。他是Roby核心开发者之一,RCRchive的维护者。
书籍目录
第一部分 Ruby/Rails全景 第1章 Ruby工作原理 1.1 编写Ruby程序的基本过程 1.2 激活解释器的方法 1.3 Ruby扩展和程序库 1.4 剖析Ruby编程环境 1.5 小结 第2章 Rails工作原理 2.1 深入Rails框架 2.2 分析Rails的MVC实现 2.3 全程开发Rails应用 2.4 全程跟踪Rails的运行 2.5 小结 第3章 了解Ruby前提下的Rails开发 3.1 了解代码在做什么的第一次尝试 3.2 开始用Ruby在代码中做更多的事 3.3 实现与应用相关的技能和任务 3.4 小结第二部分 Ruby构造块 第4章 对象和变量 4.1 从“事物”到对象 4.2 对象的固有行为 4.3 必需参数、可选参数以及默认值参数 4.4 局部变量和变量赋值 4.5 小结 第5章 用类组织对象 5.1 类和实例 5.2 设置方法 5.3 属性和attr_*方法族 5.4 类方法和Class类 5.5 进一步学习常量 5.6 继承 5.7 小结 第6章 模块和程序组织 6.1 创建和使用模块的基础知识 6.2 模块、类和方法查找 6.3 类/模块的设计和命名 6.4 小结 第7章 默认对象和作用域 7.1 理解当前对象或默认对象self 7.2 确定作用域 7.3 部署方法访问权限规则 7.4 编写和使用顶层方法 7.5 小结 第8章 控制流技术 第三部分 内建类和内建模块 第9章 内建类和模块基础知识 第10章 标量对象 第11章 集合、容器和可枚举性 第12章 正则表达式和基于它的字符串操作 第13章 Ruby动态特性 第四部分 结合Ruby和Rails 第14章 再次为R4Rmusic应用领域建模 第15章 通过编程改进ActiveRecord模型 第16章 改进控制器和视图 第17章 探索Rails源代码的技术附录A Ruby和Rails的安装和资源索引
媒体关注与评论
当Manning出版社的编辑问我,写一本Ruby新书的时机是否已经成熟,如果已经成熟,这本书应该包含什么内容,应该由谁来写时,我的回答是:. “是的……应该专门为Rails实践者写一本关于Ruby语言的书……我可以来写。” 他们同意了。 我由衷地为得到这个机会而高兴。自从2004年秋开始使用Ruby on Rails框架以来(这也使我成为较早的Rails使用者之一),我一直在沿着“Ruby for Rails”的思路思考。那年夏天Rails第一次发布,我是在2004年国际Ruby大会上通过David Heinemeier Hansson(Rails的创造者)的演示了解到Rails的。 本书书名Ruby for Rails听起来好像要讲的东西和常规的Ruby不一样,好像是要将Ruby用户划分成Rails和非Rails两个阵营。不过我认为正好相反,这才是真正的Ruby,常规的Ruby,只不过我们是从Rails开发者的需要出发来学习它的。我本人恰好能够充分理解这种方法的潜力:在开始使用Rails之前,我已经使用Ruby大约4年,并且当我开始使用Rails时,我很快就意识到,深入地了解Ruby可以帮助Rails开发人员达到他们的目标。 我看到很多Rails新手都在问他们自己,为了使用Rails是否有必要学习Ruby,这引起了我的注意。事实上,这个问题成了一个引发分歧和争执的话题,对此我非常惊讶。这一事实暗示以下几点: 首先,基础知识的学习显然是需要的:Rails是用Ruby编写的,各种Rails应用也是用Ruby编写的,所以,只要编写Rails应用,就肯定要使用Ruby。其次,我可以看到这些Rails开发者们开始在无意之中画地为牢(他们的动机是好的,但是有些片面),我觉得自己能够也应该为此做些什么。他们是在为自己设置一个玻璃天花板,他们让Rails应用运转起来,还用Rails技术和惯用法实现一些相当灵巧的东西,但同时也将发挥Ruby(事实上他们已经在使用这门语言)全部威力的机会拒之门外。这个问题必须解决。 我也注意到,在各个论坛中以各种各样的形式大量出现这样的问题:“我知道应该写belongs_to:customer,但这到底是什么呢?”很多Rails使用者告诉我,他们能通过模仿和修改其他应用的代码来让自己的应用运行起来,但是对此并不满意,因为他们觉得自己并不了解究竟发生了什么。他们用Ruby知识理解Rails代码时会遇到麻烦,这一事实说明他们还没有进入下一个层次:使用Ruby的全部威力来改进和扩展Rails应用。 这让我想到,一本以Rails为中心的Ruby语言指南可以实现双重目的。首先是向那些还没有了解情况的Rails开发者们说明:Ruby和Rails并不是互不相关的,它们更像是一种父与子的技术关系,其间有着非常开放的交流和互动。其次是打碎阻碍Rails开发者更有效地使用Ruby的玻璃天花板。 写作本书的项目启动后,我的目标确定为:阐明Rails开发者学习Ruby完全是一个有益的、双赢的方案。这并不意味着Rails有缺陷从而需要通过了解一项外来技术加以弥补。相反,Rails有一个突出的优点:它是以一种优雅、简洁、非常易于理解的编程语言(即Ruby)写成的。这其中的含义对于日常的Rails编程来说是很重要的,对其进行探索也是很愉快的。 因此,本书重申和解释了语言和框架之间一直存在的关系,并邀请大家一起来打碎这个玻璃天花板。 致谢 本书得益于来自各方面的帮助。 在Manning出版社,助理组稿编辑Megan Yockey和出版助理Blaise Bace热情地帮助我完成了项目的计划书和合同的签订。我与开发编辑Doug Bennett最初的协作富有成果;接着,因为进度和后勤的原因,该项目被重新分配给开发编辑Lianna Wlasiuk,我们继续紧密合作直到完成本书的编写,我们一起温和但是坚决地拒绝一切无关的东西,从而完成了一个强大的、无暇的产品。 审校编辑Karen Tegtmeyer分别找来了来自Ruby和Rails两方面的专家,他们负责评审在预定的不同阶段部分完成的书稿——我喜欢这样来看待该过程,越是我不确定的地方,我越是能看到它能提供实质性的帮助。版式设计师Dottie Marsico与我一起设计插图,我要为新学到的OpenOffice画图技巧而感谢她,也感谢她的鼓励和她对问题做出的快速反应。 当本书进入制作的后期和生产阶段时,我得到生产主管Mary Piergies不可或缺的支持和帮助,他协调这个地理上相距较远的过程,使得该过程既协调又很有动力。对于文字编辑Tiffany Taylor,我只能说我很快就习惯于让OpenOffice隐藏文档中的修改历史,只要将文本显示为Tiffany修改后的样子即可。另外,我毫不怀疑,本书的篇章的合理布局完全归功于Tiffany删除了过多的冗余。 技术校对Bruce Williams提出了大量的建议并做了大量的修改,我可以向读者保证,这显著提高了代码示例以及文字的可读性。没有什么能比另一双锐利的眼睛以及另一个测试者更能彻底地说服一个人:在剪切并粘贴代码后,确实不需要对代码做一点修改就可以运行…… 我和三个校对一起工作。Elizabeth R. Martin友好地加入进来,帮助本项目克服进度方面的拖延,严格地审查本书的前几章。Elizabeth校对了书稿的平衡性,我不仅要依靠他发现错误,而且不断地就字体的一致性和版式相关的各种问题向他咨询。Barbara Mirecki对书稿进行了仔细的、娴熟的最后审校。Katie Tennant用专业的技能和他的关注来纠正我用意良好但是难免不完美的索引方面的工作。排版员Gordan Salinovic辛勤工作并密切配合,保证了图书具有一致的、对读者友好的外观。.. Manning的网站管理员Iain Shigeoka在幕后保证信息在产品组的不同成员和我本人之间顺利地传递,并且在有限的几次故障突然发生时,迅速地提供帮助。 在市场方面,Manning的销售和市场总监Ron Tomich和市场主管Helen Trimes一直将本书置于Ruby/Rails读者的关注之下,并且在整个过程中寻求给我的意见和协作。尽管Ruby和Rails的流行会起到一定的作用,但是没有一本书可以靠自我推荐而畅销,Helen和Ron一直在为这本书不遗余力地做宣传工作。 最后但绝对不是无关紧要的是:在Manning项目组成员中,我要感谢出版人Marjan Bace,他迅速看到这个项目的可行性,毫无保留地支持它,并巧妙地引导它越过各种难关。Marjan的参与、专注以及对出版的全面把握,让我和本书都获益匪浅。 我要感谢本书最初的计划书的审稿人以及所有参与到不同阶段的部分书稿评审的外部读者。来自后一组人的很多评议和批评的影响比他们自己预料的还要大。感谢Anjan Bacchu、Christopher Bailey、Jamis Buck、Stuart Caborn、Tom Copeland、Ryan Cox、Jeff Cunningham、Pat Dennis、Mark Eagle、Sasa Ebach、Shaun Fanning、Hal Fulton、Benjamin Gorlick、Erik Hatcher、David Heinemeier Hansson、Jack Herrington、Bob Hutchison、Duane Johnson、Albert Koscielny、Robert McGovern、Andrew Oswald、George Peter、Michael Schubert、Nicholas Seckar、Jon Skeet、Dave Steinberg、Mike Stok、Jon Tirsen、Wayne Vucenic、Doug Warren、Mark Watson 以及另外两个匿名的审稿人。 我十分感激本书的MEAP(Manning Early Access Program)版的订阅者,在本书还未定型、尚在修改的时候,他们发现并报告了不少不容轻视的错误。我不在此提及他们的名字(他们的报告贴在作者的在线论坛:http://www.manning.com/black中),但我要感谢他们中的每一个人。 我使用Ruby已经超过5年,并且从Rails首次发布几个月之后就一直使用Rails。在Ruby/Rails这个圈子里,我有很多的朋友和同事。他们中的很多人以这样或那样的方式帮助这个项目得以实现。我的朋友,Ruby Central的负责人之一Chad Fowler,Ruby世界里的名人(也是我的聊天工具AIM窗口中的常客),在本书成形的整个过程中,用他的建议、鼓励、富有同情心的倾听和挑剔的眼睛一直在支持我。在听取一次大会报告的过程中,我通过和David Heinemeier Hansson私下聊天,第一次学到了Rails的基本知识。在我写作本书时,David是一个有力的项目支持者,也是一个极佳的技术顾问。还要感谢他为本书做序。 我也从邮件列表和IRC频道中的很多参与者以及在大会和用户组会议上遇到的Ruby高手们的帮助和他们对Ruby所表达的观点中获益不少。就像人们常说的,要感谢的人多得列都列不完。但是我必须要提到下列人员:Marcel Molina和Wayne Vucenic;纽约Ruby用户组的成员,特别是Sebastian Delmont、Conor Hunt、Francis、Hwang、Gianni Jacklone、Matt Pelletier和Zed Shaw;伦敦和丹佛Ruby用户组的成员,他们邀请我去介绍我正在创作的作品;还有在irc.freenode.net上的#ruby-lang频道的居民们,我和他们有5年不中断的(几乎总是)愉快的对话。如果有人因为没被列入这个肯定不全的列表中而感到不公平的话,请在下次大会上罚我喝酒。 从本项目开始的第一天起,我的家人就很热心地给予支持并一直关注它的进展,尽管本书离他们任何人所感兴趣的领域都相距甚远。将感谢和爱献给Barbara Aronstein Black、Gavin Black、Robin Black、Richard Goldberg、Laurie Schafer以及本书的受赠者。 在本书写作的过程中,我得到了各方面的帮助、反馈、意见和指导。但是,任何事实上的或技术上的错误,或者风格上的判断失误,都是我一个人的责任。
编辑推荐
“本书作者曾经教过我很多Ruby知识……每一个从其他语言转到Rais的人都应该拥用本书。为了充分发挥Rails的潜力,花时间去全面掌握Ruby是至关重要的。本书提供了达到这一目的所需要的一切。” ——David Heinemeier Hansson Ruby on Rails之父 Ruby on Rails(RoR)已经成为如今最灸手可热的Web开发技术之 。借助RoR你可以轻松快速地创建功能强大的Web应用! Rails框架本身就是用Ruby写成的,所以Rails应用都是Ruby程序,这就意味着要想发挥Rails的全部威力,必须首先深入全面地掌握Ruby这部语言。 本书是世界顶尖的Ruby专家为Ruby初学者尤其是具备其他语言背景的Rails开发者最身打造的绝佳Ruby教程。在讲述Ruby知识的过程中,始终从Rails开发实战出发,揭示Rails和Puby之间的微妙关系,阐述Rails自身特有的技术、惯用法和设计理念,并用Rails开发了一个网上音乐店实例。最后还介绍了探索Rails源代码的各种技术,为你继续深入打下基础。
图书封面
图书标签Tags
无
评论、评分、阅读与下载