Golang 少用 Interface 的哲学:奥卡姆剃刀下的工程实践,删掉不必要的Interface
其实个人很反对Golang所谓的“面向接口编程”的这种话术推广理念,这对新手来说是一种严重的误导性,编程语言里有很多类似的Slogan也有各种类似的营销话术上的问题,例如Java的那句“一切皆对象”,这话虽然对但强化传达理念的同时又让新手开发者陷入一种潜意识迷茫,往往容易削足适履。
“如无必要,勿增实体。” —— 奥卡姆剃刀定律
Interface 应该定义在消费方,而不是生产方。
Go Interface本身并不是用来“组织代码层级”的,这是interface被“滥用”的根源。
Go 的 interface 被滥用的根源,不是开发者不会写 interface,而是把 interface 当成了组织代码层级、分层结构、模块边界的工具。
实际上,反直觉的是:代码层级本身并不需要 interface 来证明。



