写点什么

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:272475
用户头像

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

关注

评论

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

全网最新最全面Java程序员面试清单(12专题5000解析)

Java 架构 面试 程序人生 程序

数字技术重构产业链供应链比较优势

CECBC

编程基础:硬件同步原语

正向成长

CAS 硬件同步原语 FAA

让Chrome爽到飞起的5款小众插件!

Jackpop

深入理解rtmp(一)之开发环境搭建

轻口味

android 音视频 直播 9月日更

每个人都在谈数据治理,每个人都治理不好

奔向架构师

数据仓库 数据治理 9月日更

重放浏览器单个请求性能测试实践

FunTester

性能测试 接口测试 测试框架 测试开发 FunTester

网络攻防学习笔记 Day131

穿过生命散发芬芳

网络安全 9月日更

聊聊Java运算符的那些事

Bob

Java 9月日更

【Flutter 专题】51图解动画小插曲之 Flare 动画

阿策小和尚

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

ServiceWorker工作原理、生命周期和使用场景

devpoint

Service Worker 9月日更

maven-dependency中作用域scope含义

一个大红包

9月日更

HTML进阶

Augus

html 9月日更

统一区块链应用接口,加速新场景落地

CECBC

有个码龄 10 年的程序员跟我说:“他编程从来不用鼠标”,我说:

梦想橡皮擦

9月日更

Jira API的踩坑记

FunTester

接口测试 API Jira FunTester 缺陷管理

新鲜出炉!腾讯3轮面试,拿53k*15offer全仰仗这份Java面试神技

Java 编程 架构 面试 程序人生

云南推进“区块链+数据中心”融合发展

CECBC

解决网卡“Device eth0 does not seem to be present, delaying initialization”

耳东@Erdong

9月日更 网卡

Vue进阶(幺零五):elementUI 实现表格行列拖拽

No Silver Bullet

Vue 9月日更

Python顺序结构选择结构

在即

9月日更

Golang 中的整洁架构

baiyutang

架构 DDD Go 语言 9月日更

Rust 从 0 到 1

rust

什么是可中断锁?有什么用?怎么实现?

王磊

9月日更

【SpringCloud技术专题】「Eureka源码分析」从源码层面让你认识Eureka工作流程和运作机制(上)

码界西柚

源码分析 Eureka spring-cloud 9月日更

MimeType文件格式速查表

入门小站

工具

为什么 Golang 正在接管软件行业

云原生

云计算 Kubernetes 云原生 编程语言 Go 语言

【LeetCode】找到需要补充粉笔的学生编号Java题解

Albert

算法 LeetCode 9月日更

linux之type命令

入门小站

Linux

15. 弱人工智能、强人工智能、超人工智能

Databri_AI

人工智能

手撸二叉树之二叉树的所有路径

HelloWorld杰少

9月日更

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