技术开发 频道

揭开Ruby on Rails成功之谜

包罗万象的哲学体系

    Rails的下一个成功之处在于它使用了正确的工具来完成任务。对一个Web开发者来说,一个Web框架本身就是一个工具;but I'm talking about one step higher up the food chain.对于创建一个新的Web框架的人来说,这个框架是一个应用程序,他本身必须从头做起来编写。我们应该使用什么语言:Perl、Java、C++,还是其他的什么呢?Ruby是一个选择。

    Hansson希望让Web开发更简单一些,少一点痛苦,少犯些错误和更快速一些。他选择了Ruby作为他的开发语言。Ruby是一个非常高级的语言,可以节约开发者的时间和精力;它是一个解释性语言,可以将编译和创建大型系统中出现的问题降到最低;它是一门动态语言,可以在运行的时候调整和配置自身;在一个熟练的用户手中它极具扩展性。尽管Ruby有自己的缺点,主要是在性能和速度方面,它仍然不失为用来创建一个软件系统的强大平台。Rails使得Ruby更加普及,而Ruby则使得Rails成为可能。

    Hansson做对的第二件事是选择了一个包罗万象的体系结构,这是他一直坚持的东西,他精心选择了一系列设计原则,并且坚定的去遵守它。这些思想已经存在了很长时间,但是从来没有人去如此好的运用它们。

   这些设计规则中的一个就是来自于Dave Thomas的Pragmatic Programmer一书中的“DRY重用原则(Don't Repeat Yourself)”DRY原则意味着创建到应用程序中的信息和逻辑应该被局部化或隔离。它应该尽可能少的存储在更少地方,副本应该保持在绝对最低限度。这种原则有助于组织开发者的思路和保持好的开发速度,而且使得的代码可以被更轻松修改。这种更轻松的修改所带来的好处不仅仅体现着维护模式中,在最初的开发中同样也会体现出来。Ruby通过使编程更轻松,而鼓励这种行为。

    Hansson还一依靠另一个设计原则,他将其称为“惯例优先原则(convention over configuration.)”。这意味着这个框架的用户不用去做太多的设置工作,或者不用花费太多的时间来处理一些个别的组件。举个例子来说,Rails假定在代码中的类名称和数据库中的表名称之间存在关联。如果你坚持这个标准约定,你代码将显得更具有逻辑性和更平稳;否则,你将不得不做一些额外的工作。

    这个特点使得有些人将Rails称作“固执的软件”,这意味着它有自己的处理事务方式,程序员必须按照这个方式来编写一致的代码,否则就要编写更多的代码。在某些情况下,这使得Rails在与已有的数据库和表(以及一些外部应用程序)进行整合的时候存在一些困难。但是这些问题中的很多最近已经被解决,我们希望这种情况会继续改进。

    另一个Hansson做对的事情就是自己来开发它。和Ruby本身一样,Ruby on Rails最初是由Hansson一个人设计。当然,Rails是开源的,有很多开发者帮助对其扩展,这也是其强大的一部分原因。从一定程度上可以说,是Hasson一人创建二楼Ruby on Rails,我将此称为“一人负责”原则。

0
相关文章