QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

rails_best_practices:轻松运用 Rails 最佳实践

  • 2009-11-22
  • 本文字数:804 字

    阅读完需:约 3 分钟

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

2009-11-22 23:272339
用户头像

发布了 135 篇内容, 共 62.3 次阅读, 收获喜欢 43 次。

关注

评论

发布
暂无评论
发现更多内容

JVM 内存模型学习笔记(二)

风翱

JVM 9月日更

什么是数据粒度

奔向架构师

数据仓库 9月日更

在线JSON转jsdoc工具

入门小站

工具

【Vuex 源码学习】第六篇 - Vuex 的模块收集

Brave

源码 vuex 9月日更

CSS交互动画指南之transition

devpoint

CSS css3 transform 引航计划 9月日更

阿里巴巴最新最全800道Java后端面试大全(值得收藏)

Java 程序员 编程语言 java面试 java架构

Node 编码规范 -努力做得更好

Geek_25b8d1

node.js Node 规范

译文:为什么超链接是蓝色的?(一)

姬翔

【直播预告】阿里云服务网格 ASM 产品易用性改善实践与思考

阿里巴巴云原生

阿里云 云原生

华强买瓜•程序员版

三分恶

程序员

CyclicBarrier类在性能测试中应用

FunTester

线程 多线程 性能测试 线程安全 FunTester

linux之fping命令

入门小站

Linux

小小感悟

Nydia

k8s deployment controller源码分析

良凯尔

Kubernetes 源码分析 Kubernetes源码 #Kubernetes#

惊掉下巴!这本Alibaba百万年薪必备—高性能架构路线震撼出世!

Java 编程 程序员 架构 计算机

Java“锁”事

中原银行

Java 中原银行

【LeetCode】回文链表Java题解

Albert

算法 LeetCode 9月日更

网络攻防学习笔记 Day140

穿过生命散发芬芳

9月日更 网站安全基础

别把云原生想复杂了

dinstone

微服务 云原生 云平台

autojs自动化框架简介

IT蜗壳-Tango

9月日更

【优化技术专题】「温故而知新」基于Quartz系列的任务调度框架的动态化任务实现分析

码界西柚

Java quartz 任务调度 9月日更

Redis核心原理与实践--列表实现原理之quicklist结构

binecy

redis 数据结构 原理分析

【Flutter 专题】42 图解页面截屏与本地保存小尝试

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

边缘使用 K8s 门槛太高?OpenYurt 这个功能帮你快速搭建集群!

阿里巴巴云原生

阿里云 云原生 边缘计算

数据结构与算法:缓存置换算法

正向成长

LRU 置换算法

JavaScript进阶(三)模块化

Augus

JavaScript 9月日更

Prometheus 2.22.0 新特性

耳东@Erdong

Prometheus 9月日更

中秋节如何拍月亮

卢卡多多

9月日更

产品分析:谁是利益相关者?

石云升

产品经理 9月日更

【LeetCode】括号的最大嵌套深度Java题解

Albert

算法 LeetCode 9月日更

写给互联网工程师的5G书 | 2. 无线传输

俞凡

架构 5G

rails_best_practices:轻松运用Rails最佳实践_Ruby_丁雪丰_InfoQ精选文章