在哪里放置main.go用于Go二进制文件?

时间:2018-06-08 20:32:41

标签: go directory-structure

假设我有一个非常棒的Go二进制文件,它会使一些数据非规范化,我想把它放在:

//some/path/denormalize/

理想情况下,我的包名称为denormalize,这样我就可以遵循“[设计包时]的指导原则,考虑限定标识符的两个部分如何协同工作,而不仅仅是成员名称”。因此,潜在的成员函数可能是denormalize.FromX(...)。但是,如果我将main.go放在denormalize/包下的denormalize二进制文件中,我就不能使用预期的包名,因为现在该包被命名为main

我考虑过的一些选项:

  1. main.go放在denormalize/下,然后将其余代码放在internal/api/pkg/下。优点:这似乎是大多数人所做的。缺点:包名称没有意义,它违反了确保限定符的两个部分一起工作的原则,因为api.FromX(...)不再有意义。这会导致更详细的名称,例如api.DenormalizeFromX(...)
  2. main.go放在denormalize/main/下,其余代码放在denormalize/下。优点:包名称保持有意义。缺点:子目录然后依赖于具有一些代码味道的父目录。
  3. 是否有其他选项我没有考虑将main.go放在哪里,以免它强迫我使用不同的包名?

0 个答案:

没有答案