【发布时间】:2009-08-25 17:56:57
【问题描述】:
什么是最常见的 Ruby on Rails 反模式以及如何避免它们?
【问题讨论】:
标签: ruby-on-rails anti-patterns
什么是最常见的 Ruby on Rails 反模式以及如何避免它们?
【问题讨论】:
标签: ruby-on-rails anti-patterns
没有学习 Ruby。
【讨论】:
我在很多 Rails 代码中看到了两种主要的反模式:
视图中有很多“繁重的工作”。任何比集合上的简单迭代或字符串插值更复杂的东西都应该在帮助程序或模型方法中。不要从您的 ERB 模板中查询模型对象、构造大型 JSON 数组或更新会话变量。
不能用于脚本或 API 实现的模型对象。您的模型为您的应用程序定义域语义。您应该能够启动脚本/控制台,或编写服务 API 包装器,它们重用现有的功能模型方法来操作应用程序中的所有关键数据。控制器功能仅在 HTTP 请求/响应周期中可用,这只是任何功能齐全的网站生命周期的一部分。
【讨论】:
除非 WITH else 否则使用
反模式:
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
【讨论】:
字母汤?
(没有类型声明和无意义的变量命名导致几乎不可读的代码)
模式名称来自变量名称,如“a”、“b”、“c”、“d”等。
【讨论】: