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

Ale*_*ejo 82 git version-control

我正在学习rails.

在某个地方,我注意到看似随机的文件夹和文件出现在我的rails应用程序目录中.在某些文件夹中,有一个concerns文件夹,.keep里面有文件.该.keep文件似乎为空.在其他文件夹中没有concerns文件夹但存在空.keep文件.

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

Dic*_*Boy 125

.keep文件是0字节文件,可以阻止空文件夹被各种进程忽略.没什么好担心的.

  • @tbodt我会答应他们.不确定如果有人要克隆你的代码库会发生什么. (5认同)
  • 是的,你应该保留它们,以便它们在你需要时就在那里.它还将确保您的版本控制系统注意到文件夹. (4认同)
  • 十分感谢!我应该离开他们吗?如果没有必要,我会删除它们 (2认同)

lfe*_*445 28

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

有趣的事实,名称.keep.gitkeep无意义.你可以调用该文件.foo获得相同的效果,它只是一个可读的约定.

这些.keep文件也可以帮助从一个vcs移植到另一个vcs,当你取消合并会导致这些目录为空的东西时,防止删除重要的目录.

例如,考虑一个尝试cd dir进入git未跟踪的目录的脚本.

它是一种软件设计范例,旨在减少开发人员需要做出的决策数量,获得简单性,但不一定会失去灵活性.


pra*_*ase 6

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

我想明确指出您应该使用服务对象来提供不受特定对象关注的功能.例如,组织有很多用户.现在,组织管理员需要为该组织导出所有用户的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
Run Code Online (Sandbox Code Playgroud)

无论何时需要CSV生成,您都可以在上述类中放置该逻辑.这种方法使对象(在这种情况下,组织模型)从不应该负责的代码中清除.我遵循的一般原则是:如果它修改自身对象的代码,则将代码移动到服务对象.

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