是否有创建gem的良好标准,而不是在lib文件夹中创建另一个类?
我使用过几个Rails项目,代码库往往是单片的。我想开始模块化,但我不能说服团队和我自己从哪一点开始创建独立的库。
例如,为三线班级创建一个宝石听起来过度工程化。另一方面,它似乎是合理的,因为至少在测试时会有6行,并且代码可能会进一步增长。另外,不属于MVC的代码片段不应该在应用程序中严格的工艺,但我还不确定。
您是否可以分享您的铁路项目经验,其他来源,如书籍或博客文章,或其他语言项目的课程?
答案 0 :(得分:5)
我出于不同的原因用来提取宝石:
IMO不是关于代码行。如果它解决了一个常见的问题并且可能会帮助其他问题,那么提取一个内联可能是有意义的(想想active_support中的代码扩展,其中大多数都不是非常复杂)。而另一方面,当它只解决域中非常特殊的问题时,提取一个包含100多行的类可能没有意义。
如果我想拆分一个单一的应用程序,我不会查看lib文件夹。我会看看应用程序本身,并尝试将更大的部分提取到更小的服务中。
答案 1 :(得分:1)
为3行类创建gem是过度工程化的。它会产生比它的价值更多的开销。同样关注引擎,但过早的模块化和/或优化可能会比简洁的单片应用程序IMO造成更大的混乱。