我从未对基本的宝石树结构有任何问题,即
...因为我总是将宝石作为图书馆开发。但是,我最近开始开发一个作为宝石出货的应用程序。
此应用程序有一个“runner.rb”文件(lib / mygem / runner.rb),它提供了运行应用程序的方法。应用程序从bin / mygem文件运行。
现在这让我烦恼。 “runner.rb”是一个特定于我们应用程序的文件,它不是一个服务或API或任何类型的支持类供其他人重用(这应该是库应该是什么,对吗?),但它的目录是“的 LIB /mygem/runner.rb)。
我一直在阅读很多定义,库应该支持应用程序,而不是 应用程序本身。我们没有说“这是我的应用程序的库”,但“这是我的应用程序的源代码”。
所以我的问题是,为什么我们将库和源代码放在同一个文件夹中?
我希望我明确指出,我确信这背后有一个很好的理由,我很想听听你的想法并清除它。
感谢您阅读此内容:)
答案 0 :(得分:0)
经过进一步调查后,结果发现'lib /'被称为'lib /',因为它只包含定义。
'bin'是一个执行的脚本,就像'main'函数一样。由于它被执行,因此不应该有应用程序逻辑,否则它不容易测试。
因此,所有应用程序逻辑都属于您应用程序的库文件夹。 bin(main)文件的唯一任务是实例化应用程序的运行程序类并运行它。