3 月 13 日至 14 日在盐湖城举办了 2009 年的 MountainWest RubyConf ,在 Confreaks 上可以找到此次会议的所有演讲;我们选择了一些有意思的演讲,帮助你大致了解这个会议以及会议的一些要点。
Rails 的伟大重构
Yehuda Katz 讨论了将会成为合并到 Rails 3 中的 Merb。
第一个主题是 ORM 不可知论和 ActionORM,后者是一个其他 ORM 接口的抽象,使得用户更加方便简单地替换掉 ActiveRecord(3:00)。
Merb 的发展前景(11:10)和从 Rails 学习到的新特性(Controller#call,Router#call)将会在 Rails 3 中得到保留,这样是为了让 Rails 和 Merb 足够相似化,以使得容易进行迁移。
在 17:50,Yehuda 将会详细阐述一些正在开发的重构特性:回调的清理和加速,通过剖析发现瓶颈;在 ActionPack 中删除老旧和混乱的代码(21:52)。使用类似于 ActionDispatch 的工具,将代码划分到新的架构中(24:00)。
Merb 1 有三种 API(public,private 和 plug-in,28:25),Rails 同样也会加入 plug-in API,但是具体规格还没有决定。
Rack::Bug(30:55),由 DJango Debug Toolbar 带来的激动人性的特性,使得调试和导入代码更加容易。
最后(33:53),他们希望 JRuby 和 Ruby 1.9 确保能够运行 Rails 3。
DSL 的设计和构建
Jeremy McAnally 从创建 DSLs 的理由开始,对 DSLs 做了一个介绍。通过大量的例子,他阐述了外部(8:22)和内部 DSLs(10:05)的区别。
如果你已经了解了一些 DSLs 的基础知识,你可以直接跳过关于 DSLs 设计决策的章节(16:32),学习如何为当前语言寻找到最关键的术语。
演讲的剩余部分主要关于 DSLs 的不同实现模式(19:11),例如方法链接或者方法缺失的使用。
最后他介绍了 DSLs 的测试(32:40)。
Rubinius
看过了一个 Rubinius(垃圾收集器,FFI)最新进展的快速简介,你也许需要花费 5 分钟看看 Brian Ford 是怎么说的。
Rails 的可用性
演讲的开始进行了一番激励,然后介绍了 Rails 的可用性。此次演讲的主要部分包括 7 种可用性原则,并且举出大量的现实世界中的例子和给予开发者大量的建议。
- 创建结构(4:50)
- 使用标准(7:10)
- 有远见(8:01)
- 减少阻碍(10:00)
- 增加可供性(11:53)
- 给予回馈(15:08)
- 简化(17:18)
在 Adam Dunford(21:30)的演讲之后,Jason Edwards 从一个新奇的简单结构的 Rails 应用程序开始,介绍了如何通过以上的 7 个原则,在数次迭代重构中使得此程序可用性更加丰富。
Vertebra
Engine Yard 的 Kirk Haines 解释了他们管理容错服务的架构,Vertebra 是如何组成的。他从基础底层开始介绍了:基于 XAMPP 的协议(2:54)和 Ejabberd 服务器(5:15)。
一些云中的代理程序(5:55)将会在你的机器上运行,提供在 Herault(7:30)注册的特定服务。这些服务能够被客户端代理程序从 Herault 中检索到(9:30)。Herault 同样可以处理验证过程(10:06)。
如果你有一些代理程序提供同样的功能,你可以使用 Scope(11:56)来控制请求和操作的分配。
在这个介绍之后,Haines 阐述了构建 Vertebra 所基于的库和架构,以及他们所遇到的问题:XMPP4EM(14:05),Loudmouth(14:28),EventMachine::Deferrable(15:23)。
评论