我一直在做一些最近的编程工作,并试图遵循Effective Go风格指南,有时我发现在命名包和接口和结构时很难避免口吃。避免在包和结构名称中出现口吃的方法?
作为一个例子。
我可能有一个控制台包包含控制台接口控制台结构和新功能的Console.go文件。
//console/Console.go
package console
type Console interface {
Print(s String)
}
type console struct {
....
}
func (c *console) Print(s String){
....
}
func New() Console{
return &console{}
}
现在,当我使用这个地方我最终使用console.Console
型无处不在。
当我在一个封装中的两个或更多的结构我最终之类的东西 con := console.NewConsole()
我不介意大大多扁平封装结构,但我不喜欢井然有序尽可能我的代码。我对IO.Reader和IO.Writer的想法没问题,但是当包与事物相同但仍需要分离时该怎么办。 (是的,我知道,给定的例子可能是Console.Writer但让我们假装它完全不同的东西)
所以我的问题是: 这是口吃效果的东西我甚至应该担心? (即它是不好的形式?) 有没有人有避免它的任何提示?
你可以考虑将'Interface'命名为''sort.Interface'](https://golang.org/pkg/sort/#Interface)。但我同意@Adrian,只要构造函数是'New'而不是'NewConsole',你很好 –