我想从Rails应用程序后端编码的逻辑系统中提取业务逻辑,因为它变得越来越复杂。我很确定有更好的选择,而不是硬编码很多ifs,即使通过漂亮的OOP进行修饰。
我想知道我为此目的有哪些选择。一些研究使我进入了Treetop或Rools解析器库。这些是我正在寻找的好选择吗?有没有我在这里缺少的模式/概念,我可以自己学习编码呢?
我很想听听你的意见和建议。
非常感谢
ps:哦,使用新语言进行业务逻辑而不仅仅是硬编码真的是一场胜利吗?因为我从Treetop中的示例中可以看到,就像Ruby上的DSL一样。
答案 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语句,请将它们留在您的应用程序中。