Go:不要用普通名词来命名包

主要观点:请求 Go 包作者不要用普通名词命名包,以避免变量名与包名冲突等问题,并介绍了两种解决方法,一是添加单词,如将rate改为ratelimit;二是对内部包添加字母前缀,如pclient等。

关键信息:

  • time/rate包为例说明用普通名词命名包的坏处,如变量名会优先于包名,导致包在定义上下文后无法被引用。
  • 介绍修复方法,添加单词可使名字更具描述性且不易与变量名冲突,如将rate改为ratelimit
  • 列举了一些实际项目中用普通名词命名的包,如./client等,并指出这种命名方式的弊端。
  • 对于内部包,可添加与项目名相关的字母前缀来避免用普通名词命名,如pclient等,虽会遭 Go 纯粹主义者反感,但对内部包方便改名。

重要细节:

  • Go 中包的导出名称用包名引用,如rate.Limiter
  • 变量名在 Go 中是驼峰式,ratelimit不会与变量名冲突。
  • 内部包改名方便且不影响他人,公共包不应这样做。
阅读 8
0 条评论