随机'关注'文件夹和'.keep'文件

我正在学习rails。

在线的某处,我注意到看似随机的文件夹和文件出现在我的Rails应用程序的目录中。 在某些文件夹中有一个concerns文件夹,其中包含一个.keep文件。 .keep文件似乎为空。 在其他文件夹中没有concerns文件夹,但存在空的.keep文件。

有谁知道这些文件/文件夹处理是什么?


.keep文件是0字节的文件,可以阻止空文件夹被各种进程忽略。 完全不用担心。


当你想用git提交空目录时.keep文件特别有用。

有趣的是,名称.keep.gitkeep是毫无意义的。 你可以调用文件.foo来达到同样的效果,它只是一个可读的约定。

.keep文件也可以帮助从一个vcs .keep到另一个vcs,从而防止在您将某些可能导致这些目录变为空的某些内容的情况下删除重要的目录。

例如,考虑一个脚本,该脚本试图将cd dir放入未被git追踪的目录中。

这是一个软件设计范例,旨在减少开发人员需要制定的决策数量,获得简单性,但不一定会丧失灵活性。


关注点是一个简单而强大的概念。 它存在代码重用性。 基本上,这个想法是提取常见的和/或上下文特定的代码块,以便清理模型并避免它们变得太胖并且难以管理。

我想明确指出你应该使用服务对象来提供不是特定对象所关心的功能。 例如,一个组织有许多用户。 现在,组织的管理员需要为该组织导出所有用户的CSV。 此代码可以放置在组织模型中,但由于它不是组织对象的责任,因此应将此代码放在只传递组织对象的类中,并返回所有用户的CSV。

 class Services::GenerateCsv
     def self.get_users org
         #add logic the fetch users for the org and generate the CSV and return the CSV data
     end
 end

无论何时您需要CSV生成,您都可以在上面的类中使用该逻辑。 这种方法保持对象(在这种情况下是组织模型)不应该是其责任的代码。 我遵循的一般原则是:如果代码修改自我对象,则将代码移动到服务对象。

注意:你的问题是关于顾虑,但我想添加一些额外的东西,以保持代码基础的清洁和可管理性,因为它可以帮助其他程序员。 上述方法值得商榷。

链接地址: http://www.djcxy.com/p/45227.html

上一篇: Random 'concerns' folders and '.keep' files

下一篇: Unable to clone local directory in to remote github repository using jgit