在日前结束的 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 的日益完善,会有更多的人投来关注的目光。
评论