从Rails应用程序中提取业务逻辑时,我有哪些选项?

时间:2011-09-01 10:03:18

标签: ruby-on-rails ruby logic software-design

我想从Rails应用程序后端编码的逻辑系统中提取业务逻辑,因为它变得越来越复杂。我很确定有更好的选择,而不是硬编码很多ifs,即使通过漂亮的OOP进行修饰。

我想知道我为此目的有哪些选择。一些研究使我进入了Treetop或Rools解析器库。这些是我正在寻找的好选择吗?有没有我在这里缺少的模式/概念,我可以自己学习编码呢?

我很想听听你的意见和建议。

非常感谢

ps:哦,使用新语言进行业务逻辑而不仅仅是硬编码真的是一场胜利吗?因为我从Treetop中的示例中可以看到,就像Ruby上的DSL一样。

1 个答案:

答案 0 :(得分:2)

我会尝试将业务逻辑提取到gem中。其中大部分只是复制/粘贴,并在此处进行一些调整。

这种方法的最大好处是你的宝石只关注你的业务逻辑,所以它不会处理表示等等。只要用tdd测试一切你应该没问题。

最好的情况是只需要你的宝石然后调用它最重要的方法,如:

require 'mygem'
class SomeClass < ActiveRecord::Base
  def important_method arg1, arg2
    MyGem.compute_results arg1, arg2
  end
end

这样您的代码就会保持干净和模块化,而且您可以在不同的rails应用程序中轻松使用您的逻辑。

这假设您的逻辑是一些核心计算/ ruby​​代码。如果您的业务逻辑是某些sql语句,请将它们留在您的应用程序中。