通过减少不必要的脑力劳动,一套好的符号可以使我们将注意力更多的集中在关键问题上……
Alfred North Whitehead
第一章
介绍
Ruby on Rails是 一 个 使 web应 用 的 开 发 、 部 署 和 维 护 更 简 易 的 框 架 。 当然,所有的web框架都是为了同样的目的,那么Rails有什么不同呢? 首先看整体架构。一直以来,大部分开发者都在正式web应用上采用了MVC架构。他们发现MVC有助于使程序结构更清晰 (下一章我们会更详细的讨论MVC)。Java的一些框架,如Tapestry和Struts都是基于MVC的。Rails也是一个MVC框架,当你开 发时,每段代码都有它该在的地方,而这些代码之间也是采用标准的方式交互。就好像当你开始时,应用的框架已经搭好了。 其次是开发语言。Rails是使用Ruby(一种新颖的,面向对象的脚本语言)编写的。Ruby简单明了,但又不过分简化到难于 明白,使用Ruby代码可以自然而清晰的表达你的想法。这使得Ruby代码易于书写并易于读懂。 Ruby也提供了类似Lisp的编程风格,但对其他人也同样明了。这种语言使创建类似语法扩展的方法变得很容易。虽然某些 人称之为“元编程”,但我们只说“有用”。它使我们的程序更短小易读,也使得通常需要在外部配置文件中完成的工作转移 到代码中,这使得我们更容易知道
程序在做什么。下列代码就定义了一个project的模型。先不必关心细节,只要看看短短几行代 码中展现了多少信息。
class Project < ActiveRecord::Base belongs_to has_one has_many has_and_belongs_to_many validates_presence_of validates_acceptance_of validates_uniqueness_of end :portfolio :project_manager :milestones :categories :name, :description :non_disclosure_agreement :key
最后看看整体思想。Rails的
设计着眼于几个主要概念:DRY和约定俗成。DRY的意思是“不要重复你自己”——
系统中的 每段知识都应该只在一个地方表达。Rails借助Ruby的威力使此变为现实。在Rails应用中,你将会发现非常少的重复;你只在一 个地方(通常会被MVC架构明确指出)说你要说的话,然后迈出下一步。
约定俗成也很重要。这表示Rails几乎对组成你的应用的每一个方面都能提供有意义的默认。因此你可以使用比典型
Java web 应用的XML配置更少的代码编写Rails应用。Rails也允许你不是用这种方式(通过简单的方法)
我们还可以讲讲Rails中包含的其它很酷的东西,诸如集成的
web service支持,收信,AJAX(为高交互性web应用准备),完整的单元测试框架 (包括对假对象的透明支持),对开发、测试、生产环境的分立。 还有Rails附带的代码生成工具(互联网上有更多),用来生成Ruby代码框架,而你只需要填入应用逻辑。 最后,Rails的与众
不同源于它是由真实的商业应用抽取出来的。明显的,创建一个架构的最好方法是找出一个特定应用的 中心主题,然后将其封装为一个通用的形式。因此,当你使用Rails开发应用时,你实际上已经拥有了一个好应用的半成品。 然而,关于Rails还有其它一些会给你带来好感但不好描述内容。当然,你可以保留你的看法,直到你用Rails写了你自己的 应用之后(这一切大概就在接下来的45分钟内)。这也是这本书要做的。
Dave喜欢Rails的十大原因
1. 2. 3. 4. 5. 6. 7. 它使web开发敏捷化。 我可以使用小孩也能使用的简单方式来创建web页面。 它使我集中精力在创建应用,而不是伺候框架。 虽然我的应用在增大,但它仍能保持可维护性。 我能更多地对客户说“可以”。 测试能力是内建的,并且容易使用。 快速的反馈:编辑代码,点刷新,改动就在我的浏览器中呈现出来了。
8. 元编程意味着我可以在更高的层次上处理。 9. 代码生成使我可以更快的开始下一步工作。 10. 没有大篇的配置!
1.1
Rails是