第一图书网

Rails项目实战剖析与技巧大全

(美)Eldon Alameda 电子工业出版社
出版时间:

2008 年7月  

出版社:

电子工业出版社  

作者:

(美)Eldon Alameda  

页数:

537  

字数:

921600  

译者:

张若飞;,王峰;马连浩  

Tag标签:

无  

前言

关于作者Eldon Alameda是一名Web开发人员,现居住于气候寒冷的堪萨斯州。他现在为堪萨斯市一家刚起步的小型科技公司开发Ruby on Rails应用。在这之前,他在当地的广告公司、Sprint PCS及IBM等多家公司从事过软件开发工作。关于技术评审Paul Bentley已经有10多年专业软件的开发经验。他涉猎过计算机的许多领域,其中包括从嵌入式设备到3D图形等。他尤其精通电话技术领域,不管是在传统的计算机电话技术方面,还是在基于SIP的解决方案方面都有相当丰富的经验。他现在使用Rails来开发Web应用程序,以为解决企业应用的一系列问题提供稳定的方案。致谢说实话,写本书真的很难。其实我更想说的是,如果没有许多人的帮助、耐心及智慧,这本书也就根本不可能与大家见面。Keir Thomas、Chris Mills和Ben Renow-Clarke也曾参与了这个项目,感谢你们对整个项目的指导、建议和帮助。Paul Bentley是本书的技术评审,感谢你花了很长时间审阅本书的代码,你那些见解深刻的评论及鼓励的话语一直激励着我们。Tracy Brown Collins是本书的项目经理,感谢你为了保证一切处于正轨而不知疲倦地工作,也感谢你在交稿期限到来时对我的通融。Heather Lang是本书的文字编辑,感谢你对本书文字上的修改及润色。感谢Laura Cheu和她的产品团队,你们为了能让本书尽快上市所做的辛勤工作,以及容忍我每次在最后时刻的改变。在很多时候你们拯救了我,任何言语也无法表达我对你们的感激之情。感谢我的妻子Dori,感谢你的善良、支持、鼓励及在过去的9个月里对家庭的照顾,还要感谢你在每次晚饭帮我订辣鸡翅时,(几乎)从来都没有抱怨过。最后,我要感谢我的女儿Kaylee,她是我的阳光,总是能给我带来笑声。大多数培训书籍和课程的不足在我的职业生涯中,曾经参加过许多技术培训课程,并且发现其中的大多数都有一个共同的缺点——实际上没有教授任何东西。我整个星期都坐在一间教室里,仅仅来证明我能够遵循按部就班的指导。但是,我即使整天做着白日梦,也可以通过大多数这些课程。实际上只有当我回到办公室,独自面对(由于没有一个安全的网络)需要解决的技术问题时,才能真正掌握那些知识。也许只有在没有理想环境的条件下,又不得不在实际中运用某项技术时,它的优点和缺点才能充分地展示出来。我相信许多读者也都有过同样的经历。不幸的是,如今许多的编程书籍似乎也有了同样的缺点。这些书规定了创建应用程序的每个步骤,我们只需要按照“paint-by-numbers”一样的方式去执行就可以了(“paint-by-numbers”是一种绘画方式,先在底稿上将图片轮廓画好,然后在图上用数字标好每一块区域,最后只需要在每一块区域中上色就可以了)。这样即使看完了全书,也只能说明你可以遵循按部就班的指示罢了。但是,我想写一本与众不同的书。的确,我热爱Ruby on Rails,并坚信它是当今最好的Web开发框架之一。Rails给我的开发工作带来了许多快乐,也使我成为了一个更好的开发商。所以,当有机会写这本书的时候,我希望能写一些可以使读者同样对Rails产生热爱的东西。于是我重温了当前有关Rails的书籍,发现它们大致可以归为以下几类。起步介绍型:主要介绍Rails的结构、约定习惯及特性。这样的例子有《Beginning Rails: From Novice to Professional》(Jeffrey Allan Hardy,Cloves Carneiro Jr.及Hampton Catlin. Apress,2007),《Agile Web Development with Rails》(Dave Thomas,David Hansson,Leon Breedt和Mike Clark. Pragmatic Bookshelf,2006),甚至包括《Ruby on Rails for Dummies》(Barry Burd. For Dummies,2007)。单一项目型:这种书属于填鸭式(就是把知识一味灌输给学生)教育,主要让读者一步一步地跟着书上步骤来创建一个项目,例如用Ruby on Rails来创建一个社交网站或者电子商务网站。解决特定问题型:这些书主要针对于高级Rails开发商,并通过简短的代码段来说明一些问题的解决方案,例如增加认证控制功能等。参考书型:这类书也是针对于高级Rails开发商的,它对某一特性或者Rails开发的相关组件进行了深入剖析,例如优秀的《Ruby for Rails:Ruby Techniques for Rails Developers》(David Black. Manning Publication,2006),以及《Pro ActiveRecode:Databases with Ruby and Rails》(Kevin Marshall,Chad Pytel和Jon Yurek. Apress,2007)、《Deploying Rails Applications A Step-by-Step Guide》(Ezra Zygmuntowicz和Bruce Tat. Pragmatic Programmer,2007)等书。通常,我建议对学习Rails有兴趣的人按照如上顺序来阅读相关书籍。由起步的Rails书籍开始,然后按照书上步骤去做一些项目,积累一些实际经验。最后,再看些能够进一步加深认识的书籍。这本书有什么不同在上面列举的几种书中,我相信读者从项目型的书中获得的Rails知识最多。但是,即使像Rails这么有意思的主题,这些书也会阻碍读者的思维发散,最终只能一步一步按照书中的指示操作,而不是从中去拓展思路。当然,我也不是要把这类书一棒子都打死,实际上我自己也阅读了大量这类的书籍。我希望能让读者从一名Rails初学者尽快地成为一名有经验的Rails开发商。我希望不只是教给读者如何创建一个Rails应用,而是教给读者相关的实现方法和知识,使得你可以自己来完成这一类项目的开发,这样你选择这本书才算是物超所值。所以,本书不只是简单地向读者介绍一个独立应用的创建过程,而是与读者一起去完成多种类型的项目。书中所选的每一个项目不仅会让读者掌握Rails的核心特性(例如缓存和REST方式的路由),而且为了激发读者的兴趣,我们还对某些问题进行了深入探讨,其中的每一个项目都能很容易地扩展成单独的一本书。学会独立思考除此之外,我不仅没有将每个项目扩展成为一本独立的书,用填鸭式的方法一步一步指导读者,反而将每个项目的规模缩小了一些,仅向读者提供了每个项目的原始版本。这样不仅能够保证项目可以成功运行,而且读者可以很容易地进行修改和扩展,以便使其更符合自己的需求。每当描述这本书的时候,我都把它比喻成是在教别人学骑自行车。从这点来说,我的任务就是教会读者如何上车和前进,然后让读者自己去学会如何掌握方向和平衡,直到学会骑自行车。在每一个项目的最后,我都设置了一些读者需要去思考的问题。因为我相信只有实践才是检验真理的唯一标准,所以我会在这个部分指出项目中一些不尽如人意的地方,来让读者进行修改。另外,这里提出了一些非常有意思的见解,可能会使读者从新的角度来看待项目。强烈建议读者完成其中的每一个练习,相信读者能够通过这些练习更好地拓展自己的思路。本书中不涉及的内容当然,撰写这样的一本书需要忍痛割舍掉很多想要涉及的内容。如果我将这些内容全部写出来的话,这本书估计要有2000页了(也许我还在写呢)。因此,一些本书中无法涉及到而有读者需要的内容,只好放在以下这个部分跟读者说明了。数据库调优和索引由于本书中不涉及到数据库的调优和索引,所以读者可能会发现,本书中的大多数项目都没有在数据库中建立任何索引。当我们的数据库数据量较小并且查询语句相对简单的时候,这可能并没有什么问题,但是当数据库与应用程序随着时间不断增加的时候,这就可能导致严重的性能问题。也许因为我是从数据库管理转到Web开发上来的,所以我很难将这个重要的特性从本书中移除,但是这个问题实在是很复杂,也容不得我在这上面花费过多的精力。也许将来我会再写一本完全关于这个方面的书。测试在Rails社区中,测试驱动开发(TDD,Test-driven development)显然占有一席之地。虽然我还没有先写测试的习惯,但是我很清楚在部署应用之前开发一个复杂的测试套件(Test Suit)的价值。我曾经听到有人说所有的程序都要经过测试,问题是应该由你自己来测试用例还是直接将程序交给你的用户,让他们来帮你进行测试。重构(Refactoring)伴随一系列测试用例而来的,便是对代码进行重构。由于每个项目还处于非常初始的演示阶段,所以留给了代码重构很大的空间,以使代码变得更干净利落,可以优化性能和减少代码量。在每个项目的练习部分中,我都会为读者指出通常进行重构和优化的正确方向。

内容概要

果你是一个已经领略过Ruby on Rails威力的开发人员,又想进一步提升Rails技能,本书对你而言将是无价之宝。本书的重点并不在于该框架的应用基础,而是聚焦于带你感受众多真实案例的开发实践,包括博客、个人备忘录、日历、一个由PHP移植为Rails的网站实例等。每一应用实例均来自最佳实践,包括类型、功能、多种Rails插件应用、Rails引擎和Ruby Gem。同时,也探讨最先进的Rails功能,诸如新的REST执行和Active Resource。作为必要的回顾,本书在直接进入项目实践之前,先向读者介绍了一个理想开发环境的建立。全书内容包括:如何基于Windows、Mac OS X和Linux建立Rails;如何配合MySQL and SQLite数据库使用Rails;如何合并最新插件、引擎和Ruby Gems到应用中,以节省开发时间;如何使用Yahoo YUI轻松实现一致的应用风格;如何将PHP站点翻新为Rails;如何使用Ajax技术为应用增色;如何使用最先进的Rails功能,如REST和Active Resource。 本书适合程序开发人员参考学习,还可以作为高等院校相关专业师生的参考书。

作者简介

Eldon Alameda,一名Web开发人员,现居住于气候寒冷的堪萨斯州。他现在为堪萨斯市一家刚起步的小型科技公司开发Ruby on Rails应用。在这之前,他在当地的广告公司、Sprint PCS及IBM等多家公司从事过软件开发工作。

书籍目录

第1部分 必要的准备工作(请不要跳过这一部分) 第1章 搭建开发环境 第2章 创建Rails应用程序第2部分 Monkey Tasks日常任务管理 第3章 实现用户注册与认证管理 第4章 实现日常待办事项管理 第5章 完善Monkey Tasks第3部分 Exercisr应用程序 第6章 开发基于REST的应用程序 第7章 为应用程序添加图形功能 第8章 完善Exercisr第4部分 简单的博客程序 第9章 使用Typo创建博客程序 第10章 创建一个简单的博客引擎(Engine) 第11章 完善博客程序第5部分 使用缓存构建一个Web漫画站点 第12章 使用页面缓存构建基本的系统 第13章 实现高级缓存 第14章 完善Web漫画站点 第6部分 教会社区网站 第15章 用户和档案管理 第16章 完善社区站点 第17章 完善教会社区应用第7部分 GamingTrend网站 第18章 PHP网站的遗留问题 第19章 转化游戏记录 第20章 新闻管理功能 第21章 完善游戏网站第8部分 使用Edge Rails(Rails 2.0)集成REST应用程序 第22章 Highrise的简要介绍 第23章 集成Highrise的REST API  第24章 创建预约程序 第25章 完善Rails 2.0应用程序

章节摘录

插图:第1章 搭建开发环境Miracle Max:你催促一个制造奇迹的人,只能得到一个糟糕的奇迹。——摘自William Goldman编剧的影片《公主新娘(The Princess Bride)》,1987年为了能够运行本书中的项目,首先需要保证在机器上已经安装了如下的软件。Ruby和Rails:因为Rails是一个针对于Ruby的框架,并且其自身也是使用Ruby编写的,所以首先需要安装Ruby。对于本书来说,Ruby的版本应该在1.8.4以上。稍后我会讲解一些如何快速并且正确安装Ruby及Rails的方法。数据库(Database):Rails框架是针对于创建基于数据库驱动(Database—driven)的Web应用程序。因此如果没有连接数据库的话,这个框架很可能无法启动。稍后会讨论开发中经常会使用的几种数据库类型。代码编辑器(Code Editor):虽然从Rails的开发理论上来说,只要使用文本编辑器(可以创建和修改文本文件)就足够了,但是由于在实际中可能会牵扯到大量的文件,所以我们在后面会介绍一些高级技巧,来帮助读者提高开发的效率。Web服务器:再好的机器也需要借助Web Server才能运行Rails程序。幸运的是,现在已经有几种非常优秀的、基于Ruby实现的服务器可以供我们选择。1.1 安装Ruby和Rails因为考虑到本书的大部分读者可能已经阅读过一些入门的Rails书籍,所以我也不打算花费太多的时问来讲解如何安装Rails。但是,又考虑到有些读者的确需要了解这方面的内容,所以我想至少还是应该为他们指明一个正确的方向,以免有读者在这个问题上无谓地浪费精力和时间。因此在这个部分中,我会从一个更高层次的角度来介绍如何在Linux、Windows和Mac OSX上安装Rails。如果读者想参考一本入门级的Rails书籍,那么最好的选择是《Agile Web Development with Rails》(Thomas,Dave et al. Pragmatic Programmers,2006)。


编辑推荐

《Rails项目实战剖析与技巧大全》适合程序开发人员参考学习,还可以作为高等院校相关专业师生的参考书。

图书封面

图书标签Tags

广告

下载页面


Rails项目实战剖析与技巧大全 PDF格式下载



相当实用的教程,对学好RAILS很有帮助


实例讲解,还不错!


刚刚翻了几页目录,感觉还是不错的,有点利用价值


本书还是不错。内容丰富。


这书不适合初学者,感觉我买错了,看不懂= =


内容非常好,可以书中用的是rails 1.2.6,现在2.3都发布了。所以经常看到过期的用法,有点不爽


相关图书