2009 年 10 月 22 日星期四

社区亮点

Gregg Pollack 发布

Rails 社区持续不断的创新潮流让我印象深刻。以下只是过去一个月的一些亮点。这些故事都来自 Ruby5 Podcast,该播客每周两次报道 Ruby 和 Rails 社区的所有新闻。

认证

本周,才华横溢的巴西人 Plataformatec 小组发布了 Devise gem,为你的 Rails 应用程序提供一种新的认证选择。Devise 是一个基于 Warden 的 Rails 引擎,后者是一个 Rack 认证框架。这使得 Devise 比其他 Rails 认证库灵活一些,绝对值得一试。

另一方面,如果你的应用程序需要更简单的东西,请查看 Terry Heath 的 OpenID Rails 引擎。你只需花费大约 10 分钟即可启动并运行认证系统,而且你不必担心存储用户密码。

实用型库

由于 Twitter 新的 流式 API,我们不再需要每 5 秒轮询一次来发现新的推文。要立即开始使用它,请查看 Intridea 的 TweetStream Gem

使用 Rails 2.3,我们获得了在 Rails 应用程序中利用 Rack 中间件的功能。如果你还不知道 Rack 中间件是什么,那就去看 观看这个屏幕录像。此外,如果你想要了解如何使用它的想法,请查看 CodeRack 中间件竞技比赛,这是一场开发更实用且高质量的 Rack 中间件的比赛。

几周前,我听说了一个名为 Validatious 的 javascript 库,它提供了一个低调的 javascript 来进行客户端表单验证。我知道你在想什么,“如果我执行客户端和服务器端验证,我将有重复验证逻辑的代码,这会让我想要大喊大叫”。先别喊,首先看看 Jonas Grimfelt 的 Validatious on Rails 插件,它将使用你现有的模型验证自动生成客户端验证。

优化和性能

如果你的 Rails 应用程序需要能够同时处理许多用户上传文件(想想 Flickr),那么你可能需要查看 ModPorter,一个 Apache 模块和 Rails 插件,由 Pratik Naik 和 Michael Koziarski 创建。ModPorter 在你的 Rails 应用程序收到之前解析传入的多部件请求,将文件存储到磁盘中,因此你的 Rails 进程不会被搁置。我们听说还有一个支持 nginx 的第三方模块。

在处理诸如 ActiveRecord 数据库抽象时,确保编写最优的数据库查询非常重要。如果你担心你的应用程序执行的查询过多或未正确地使用热加载,你可能需要签出 Richard Huang 编写的 Bullet 插件。当忽略 :include 时或应该使用计数器缓存时,Bullet 实际上会给你 growl 通知。

你的 mongrel 消耗 150 Mb 以上的 RAM,你不知道为什么?你猜想可能是到处都在发生 Ruby 泄漏?那你的猜想可能错了,Sudara Williams 会告诉你 那不是内存泄漏,是膨胀。更有可能的是你正在实例化数千个 ActiveRecord 对象,Sudara 给你一些关于如何找到它们的建议。

清理代码

呈现器模式对于封装可能使你的控制器很臃肿的代码,即可能不属于你的模型的代码非常有用。Dmyto Shteflyuk 撰写了一个 非常好的入门文章 来讲述如何使用呈现器,如果你还没有使用呈现器,值得一读。

在 Ruby 和 Javascript 之间发送复杂数据集并不总是容易的事情。你是否希望有一种方法可以采用 Ruby 哈希,然后自动将其转换为 javascript 映射?如果是,那么你可能需要查看 Erick Schmitt 编写的 jsvars,它就是这样做的。

部署

你可能已经了解 Chef(系统集成框架),但是你知道你还可以使用 chef-deploy 从 chef 部署你的 Ruby 应用程序吗?Ezra Zygmuntovich 创建了这个 gem,允许你运行你的 chef 配方,然后如果它们通过(仅在通过时),则以类似 capistrano 的方式部署你的代码。

如果你要将 Rails 集群部署到 Amazon EC2,那么除了使用 Chef 之外的另一个解决方案是 Matthew Conway 编写的名为 rubber 的 gem。Rubber 将部署作为一等公民,将所有服务器配置文件存储在 Rails 应用程序中,可以在其中快速地进行调整并置于版本控制之下。它开箱即用提供了许多最佳部署实践,并且可以随时随地点进或放出。

媒体

你是否曾经想过在你的城市举办 Rails 教程,但是写完所有课程材料让你灰心?那么你需要签出 Rails Bridge 开源研讨会项目,他们那里有你需要的全部免费课程材料!你再也没有借口不传播 Rails 的消息了。

最后,如果你正在寻找更多 Rails 屏幕录像,你也许想要查看 Teach Me To Code,如果你正在寻找更多 Rails 阅读材料,那么查看 Rails 杂志 由 Olimpiu Metiu 撰写的过去几期。

感谢你的阅读,如果你有任何 Ruby 或 Rails 新闻想让大家知道,请发送电子邮件至 ruby5@envylabs.com 提交到 Ruby5 播客

图片来源:蓝天上的铁轨ecstaticist 拍摄,Analog Solutions 606 改装Formication 拍摄,彩虹One Good Bumblebee 拍摄。 奥兰治县安保henning 拍摄,扫帚fatman 拍摄,记住tochis 拍摄,达尔文正确地阐述了媒体播放器!Neeku 拍摄。