Где поместить main.go для двоичного файла Go? - PullRequest
0 голосов
/ 08 июня 2018

Допустим, у меня есть потрясающий бинарный файл Go, который денормализует некоторые данные, и я хотел бы поместить его в:

//some/path/denormalize/

В идеале мое имя пакета будет denormalize, что позволит мне следоватьруководящие принципы для «[при] разработке пакета, рассмотрите, как две части квалифицированного идентификатора работают вместе, а не только имя члена».Таким образом, потенциальная функция-член может быть denormalize.FromX(...).Однако, если я помещу main.go для денормализованного двоичного файла в пакет denormalize/, я не смогу использовать имя предполагаемого пакета, поскольку теперь пакет будет называться main.

Некоторые варианты, которые я рассмотрел:

  1. Поместите main.go в denormalize/, а затем поместите оставшуюся часть кода в internal/ или api/ или pkg/.Плюсы: похоже, это то, что делает большинство людей.Минусы: имя пакета не имеет смысла и нарушает принцип обеспечения совместной работы двух частей классификатора, поскольку api.FromX(...) больше не имеет смысла.Это приводит к более подробным именам, таким как api.DenormalizeFromX(...).
  2. . Поместите main.go в denormalize/main/, а остальную часть кода в denormalize/.Плюсы: название пакета остается значимым.Минусы: тогда подкаталог имеет зависимость от родительского каталога, который имеет некоторый запах кода.

Есть ли другие варианты, которые я не учел, где разместить main.go так, что он не будетзаставить меня использовать другое имя пакета?

...