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)。
\