Professional Documents
Culture Documents
通过学习如何建站,你就可以轻松地使用同样的代码运作自己的在线社区网站,或者调整开发
代码适应你的网站需求。
RailsCoders 项目
从上面的目标,我们可以生成自上而下的网站特性需求列表:
• 一个允许用户创建用户帐户,添加个人信息的系统:要求用户用他们的用户名和密码来
登录。
• 一个简单的方式让你维护信息页面:这些页面可能大多数时间是静态的,可是当页面变
更时,你不想去进入 HTML 编辑。这样,需要的是一个简单的内容管理系统。
• 一个新闻博客:运用一个站点提供的编辑器来创建新闻的文章,发布。
• 一个讨论论坛系统:论坛的版主应当能创建若干的讨论区,在各个讨论区里用户能开新
的话题。每个话题可以有任何数量的帖子。
• 一个博客引擎:网站的用户可以建立属于他们自己的网络日志,谈他们的项目和 Rails
开发经验。还要允许用户在桌面客户端 blog 软件发布日志的录入,跟在网上一样的操作
体验。
• 一个用户的个人相片展示区: 用户可上传他们的照片到他们的个人基本资料中,还应该
支持对照片的缩略图显示。
• 一个电子邮件通知系统:新闻信件可以送达所有的本站用户,假如用户接受了从网站的
email 收信订制。
• 浏览器选择:网页应该能在所有桌面浏览器和手机上移动式浏览器上显示。
由于许多的用户在其它的在线社区已经拥有了帐户,此站点需要能够集成其它社区。本书里的
RailsCoders 项目给用户从 Flickr 里显示他们最新的照片,同样也提供 RSS 来同步用户 blog,
让其它的社区网访问用户在 RailsCoders 里的数据。
我相信你急不可待要开始项目开发了(我更等不下去了),但是在我们开始前,值得花点时间
了解 Ruby 和 Ruby on Rails 是什么以及它们之间的关系。
领会语言和框架的动态二重奏从何而来,会有助于清楚认识它们,并理解那些是产生生产力的
重要因素,让你伴着喜乐与之工作。
Ruby 的历史简介
RUBY 的其它用途
这个框架最初不是作为一个独立的产品来构思设计的,它一个实际应用中的一部分并被抽取出
来。这样也成为 Rails 非常实用的原因之一。David Heinemeier Hansson(DHH), 在为
37signals(37 信号公司)研发基于 web 使用的项目管理工具 Basecamp(意思是大本营)时,
形成了 Ruby on Rails 设计思路。37signals 公司 http://37signals.com,试用 Basecamp
http://basecamphq.com 。
DRY 不必过多解释。假如你已经定义过东西,应该不必再定义。例如,你一旦定义了数据库的
栏目名称,就应该不用在代码里其它位置重复定义了。因此减少大量的工作并避免代码中出现
不一致的情况。
DHH 和 37 信号公司的开源决策主要是因为他们相信开放的框架让更多的人来使用,也同时会得
到更多人的贡献,有助于框架自身快速的发展和改进。
使用 MVC 架构的优势是带来了干净的代码并隔离开逻辑的部分,使得开发更容易,代码易读
懂,维护和控制也变得简便起来了。
提示 如果打算进一步学习设计模式,可以在维基百科中获得概况介绍
http://en.wikipedia.org/wiki/Design_pattern_(computer_science) 或阅读 Design
Patterns 方面的书 Elements of Reusable Object Oriented Software 作者 Erich Gamma,
Richard Helm, Ralph Johnson, and John Vlissides (Addison Wesley, 1995).
因为 Rails 促使你在架构上做出决策,你能化更多的时间集中处理应用,更少的时间担心系统
的信息流程了。
如何写出代码适应到这个架构,当你请求一个页面时发生了什么,这些都会在下面的章节中得
到准确的解释,一路伴随着我们开发的脚步。
模型: ActiveRecord
视图和控制器: ActionPack
元编程 Metaprogramming
内建的测试功能
开发 web 应用测试经常被迫放到项目的结尾阶段,或是没有足够的时间,或是没有足够的重
视。通常这个原因是开发中的测试也许很困难很花时间。
Rails 框架完全集成自动化的测试工具。这些工具让测试变得难以置信般的简单,不论是写单
元测试,还是功能测试和集成测试。因为写个测试没那么难,你就会找到在开发代码的同时写
测试的感觉。