Ruby on Rails的反模式

时间:2009-08-25 17:56:58

标签: ruby-on-rails anti-patterns

什么是最常见的 Ruby on Rails反模式以及如何避免它们?

4 个答案:

答案 0 :(得分:14)

不学习Ruby。

答案 1 :(得分:13)

我在很多Rails代码中看到过两种主要的反模式:

  1. 意见中有很多“举重”。比集合或字符串插值的简单迭代更复杂的事情应该是帮助器或模型方法。不要查询模型对象,构造大型JSON数组或从ERB模板更新会话变量。

  2. 不能用于脚本或API实现的模型对象。您的模型定义应用程序的域语义。您应该能够启动脚本/控制台,或者编写服务API包装器,它们重用现有的功能模型方法来操作应用程序中的所有关键数据。控制器功能仅在HTTP请求/响应周期中可用,这只是任何全功能站点生命周期的一部分。

答案 2 :(得分:2)

使用除非另外

反模式:

unless is_the_weekend?
  do stuff that you do during the week
else
  do stuff that you do on weekends
end

替代:

if is_the_weekend?
  do stuff that you do on weekends
else
  do stuff that you do during the week
end

答案 3 :(得分:1)

Alphabet Soup?

(没有声明的类型和无意义的变量命名,导致几乎不可读的代码)

模式名称来自变量名称“a”,“b”,“c”,“d”等。