【问题标题】:Antipatterns with Ruby on Rails [closed]Ruby on Rails 的反模式 [关闭]
【发布时间】:2009-08-25 17:56:57
【问题描述】:

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

【问题讨论】:

    标签: ruby-on-rails anti-patterns


    【解决方案1】:

    没有学习 Ruby。

    【讨论】:

    • 嘿,我不敢相信我对此表示赞同 :-)
    【解决方案2】:

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

    1. 视图中有很多“繁重的工作”。任何比集合上的简单迭代或字符串插值更复杂的东西都应该在帮助程序或模型方法中。不要从您的 ERB 模板中查询模型对象、构造大型 JSON 数组或更新会话变量。

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

    【讨论】:

      【解决方案3】:

      除非 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
      

      【讨论】:

        【解决方案4】:

        字母汤?

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

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

        【讨论】:

        • 这是否是特定于 RoR 的?
        • 至少没有。与其他语言相比,我在 Ruby 中注意到的这一点要多得多(而且我看到的 Ruby 大部分用于 RoR)。
        • 当然没有声明类型,它是一种动态语言。并且任何使用单个字母作为变量的人,而不是任何语言的迭代器都需要向他们抛出一些困难
        猜你喜欢
        • 1970-01-01
        • 2014-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多