rails_best_practices:轻松运用 Rails 最佳实践

阅读数:1402 2009 年 11 月 22 日

话题:RubyRuby on Rails语言 & 开发架构文化 & 方法

在日前结束的Kungfu Rails 大会上,来自台湾的著名 Rails 人张文钿(ihower)为大家带来了一个关于 Rails 最佳实践的分享,演讲结束后 Rails3 的核心开发者 Yehuda Katz 主动索要幻灯片,其内容之精彩已不言而喻。

会后,Bullet 插件的作者黄志敏(flyerhzm)根据 ihower 演讲的内容,制作了一个能够自动检查违背最佳实践代码的 Gem,名为rails_best_practices

rails_best_practices 是一个 Gem,它会根据 ihower 在 Kungfu Rails 大会上的 Rails 最佳实践的演讲内容,检查 Rails 应用程序文件的质量。它是一个静态代码解析工具。

rails_best_practices 的安装和使用都非常方便,只需简单两条命令就能知道代码中何处需要修改:

sudo gem install rails_best_practices --source http://gemcutter.org
rails_best_practices .

最新的 0.3.3 版本中,rails_best_practices 已经完成了大部分最佳实践的,使用者可以自行配置要检测的条目,目前支持的最佳实践有:

Lesson 1. Move code from Controller to Model
  • Move finder to named_scope
  • Use model association
  • Use scope access
  • Add model virtual attribute
  • Replace Complex Creation with Factory Method
  • Move Model Logic into the Model
Lesson 2. RESTful Conventions
  • Overuse route customizations
  • Needless deep nesting
  • Not use default route
Lesson 3. Model
  • Keep Finders on Their Own Model
  • Love named_scope
  • the Law of Demeter
  • Use Observer
Lesson 4. Migration
  • Isolating Seed Data
  • Always add DB index
Lesson 5. Controller
  • Use before_filter
Lesson 6. View
  • Move code into controller
  • Move code into helper
  • Replace instance variable with local variable

Ruby5 不久前在2009 年 11 月 17 日的 Podcast中介绍了 rails_best_practices,而 railscasts.com 的 Ryan Bates 也已开始关注该项目,相信随着 rails_best_practices 的日益完善,会有更多的人投来关注的目光。