基本信息
- 原书名:Ruby for Rails: Ruby Techniques for Rails Developers
- 原出版社: Manning Publications
- 作者: (美)David Black
- 译者: 吴畅欣 张明生
- 丛书名: 图灵程序设计丛书.Web开发系列
- 出版社:人民邮电出版社
- ISBN:9787115161611
- 上架时间:2007-6-22
- 出版日期:2007 年7月
- 开本:16开
- 页码:386
- 版次:1-1
- 所属分类:计算机 > 软件与程序设计 > Rails/Ruby
编辑推荐
为Rails量身打造的Ruby教程
Ruby on Rails之父作序推荐
释放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章 对象和变量
前言
“是的……应该专门为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一直在为这本书不遗余力地做宣传工作。
序言
由于我的背景是PHP和Java,所以Ruby的很多最精彩的特性一开始在我眼中都很怪。“究竟是什么让块这么特殊呢?”我想,“它们从始至终不过是便于编写一行代码而已。”那时我对Ruby知之甚少,随着开始使用Ruby并从开发代码中抽取出Rails,我很快就理解了。Ruby是一门令人难以置信的、功能强大和富于表现力的语言,所以很难用过去使用其他语言的经验来欣赏和理解它的美妙。
为了创建Basecamp,我需要整天泡在Ruby里。在这个过程中,我不断发现,该语言的一些特性正好就是解决我手头问题所需要的。在PHP或Java中让我头疼的事现在却让我会心地微笑,因为Ruby一次又一次地让我感到,编程可以是简单、有趣和美好的。
在学习这门语言的时候,我经常在ruby-talk邮件列表中咨询。在那里,有一个人看起来对Ruby了解特别多,他很愿意而且往往能够帮助其他人更多地了解Ruby。他就是本书的作者David A. Black。..
David显然对Ruby有着百科全书般的了解。他不仅了解如何使用Ruby,而且还能够解释其背后的原理。他可以将分散的知识点关联起来,并补足缺失的部分,让你看到全貌。我想像不出还有谁比他更合适写这本书。这个曾教过我那么多Ruby知识的人,现在又在帮助其他人理解这门语言,从而让他们可以使用我开发的框架,这是我莫大的荣幸。
每一个从其他语言转到Rails的人都应该拥有本书。为了充分发挥Rails的潜力,花点时间去全面地掌握Ruby是至关重要的。本书提供了达到这一目的所需的一切。...
David Heinemeier Hansson
Ruby on Rails之父
37signals公司合伙人