我一直在使用 CodeClimate 来改进我的代码库,并且我有一个模型类,对于那些不使用 CodeClimate 的模型类来说,它落在“方法之外的定义”和“总体复杂性”上,方法之外的定义是指类关联和验证等定义。总的整体复杂性就是它所说的,即我的个人方法都不是太复杂,以至于整个类都太复杂了。
现在我明白这可能是一个错误的立场,但我的分数上的 D 类很烦人,我很可能可以做更多的事情来改进这门课,所以我的问题是:
如果我应该做些什么来简化这个 ActiveRecord 类呢?
我的主要问题是我已经用尽了所有关于重构胖模型的方法,使用这篇文章http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat- activerecord-models/和类似的,我基本上只剩下:
- 范围 x2
- attr_accessible x2
- 载波支架 x1
- 验证器 x4
- 协会 x16
- Accept_nested_attributes_for x1
- 钩子,例如 after_save x3
- 对各种其他属性进行一些计算的方法,以使我的视图更具语义化且更易于理解
- 围绕关联的方法,处理空关联,合并关联
它是一个闭源项目,但鉴于此类中缺乏领域逻辑,我在这里分享了它。https://gist.github.com/msaspence/5317419