你如何在golang中命名一个多术语包?

The*_*ist 13 naming-conventions go

go 包的命名约定是有据可查的,golang.org 的博客指出:

好的包名简短而清晰。它们是小写的,没有下划线或混合大写。它们通常是简单的名词,例如 [descriptions removed]: time, list, http

同一个指南然后提供了两个坏名字的例子:

以下是两个在其他语言中可能风格不错但在 Go 中不太适合的名称示例:computeServiceClient、priority_queue

指南没有说的是,当您有一个具有非常特定用途的包裹而实际上不适合作为一个词的名词时该怎么做。

我们有一个名为 Rhino Horn 的库,用于在内部查找意外泄露的凭据。出于运行 Rhino Horn 的资源密集程度的原因,我被指示在 golang 中为 Rhino Horn 编写一个主管,以监控其性能并在需要时快速关闭。Rhino Horn 不是用 Go 编写的,而是一个完全独立的项目。

golang 命名约定会让我给 Rhino Horn Supervisor 起什么名字?

dm0*_*514 6

我认为有很多很多选择。其中一些是:

  • 如果您的项目只专注于管理犀牛角,您可以将您的项目命名为 rhino-horn-supervisor 并且不打包任何只有平面顶级文件main.go, hornoutput.go, 或 w/e 的内容
  • 如果监督犀牛角是更大应用程序的一个组件,那么可能有很多设置,其中之一可能是一个supervisors包,而犀牛角是单个文件及其实现
  • 还有子包的可能性,supervisors/rhinohorn
  • 你也可以rhinohorn用一个supervisor.go文件制作一个包:P