随机“关注”文件夹和“.keep”文件
我正在学习铁轨。
在线的某处,我注意到看似随机的文件夹和文件出现在我的Rails应用程序的目录中。 在一些文件夹里面有一个concerns
.keep
文件的concerns
文件夹。 .keep
文件似乎是空的。 在其他文件夹没有concerns
文件夹,但存在一个空的.keep
文件。
有谁知道这些文件/文件夹处理是什么?
.keep
文件是0字节的文件,可以阻止空文件夹被各种进程忽略。 完全不用担心。
当你想用git提交空目录时.keep文件特别有用。
有趣的是,名称.keep
或.gitkeep
是毫无意义的。 你可以调用文件.foo
来达到同样的效果,它只是一个可读的约定。
.keep
文件也可以帮助从一个.keep
到另一个.keep
,从而防止删除重要的目录。
例如,考虑一个脚本试图cd dir
到git未跟踪的目录。
这是一个软件devise范例,旨在减less开发人员需要做出的决策数量,获得简单性,但不一定会丧失灵活性。
关注是一个简单而强大的概念。 它存在代码重用性。 基本上,这个想法是提取常见的和/或上下文特定的代码块,以清理模型,避免它们变得太胖,难以pipe理。
我想明确指出你应该使用服务对象来提供不是特定对象所关心的function。 例如,一个组织有许多用户。 现在,组织的pipe理员需要为该组织导出所有用户的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生成,你可以放在上面的类逻辑。 这种方法保持对象(在这种情况下,组织模型)清除不应该是其责任的代码。 我遵循的一般原则是:如果代码修改自我对象,将代码移动到服务对象。
注意:你的问题是关于问题,但我想添加一些额外的东西,以保持代码基础干净和可pipe理,因为它可能会帮助其他程序员。 上述方法是有争议的。