I like this rule. Most companies violate it everywhere. There are good times to ignore it but I always push for
func NewThing
To return something other than the interface type. The last Go interview I was in I brought this up and the argument was that you cant test things if you are not returning the interface and I disagree entirely.I love the power of duck typing with interfaces but give me concrete things that quack.