在平时写业务的时候喜欢抽接口,各种 dao interface, client interface ,但是很容易会导致接口越来越大,维护起来越来越麻烦,写了篇文章聊一下我眼中的最佳实践。
https://vim0.com/post/how_to_fix_big_interface/
https://vim0.com/post/how_to_fix_big_interface/
1
Aoang Feb 13, 2022 via iPhone 最好的方式就是非必要就不要用,啥都抽象出来,interface 满天飞,即使是有 IDE ,看 interface 的实现也是很麻烦。
自己写的东西,只要可以,都是尽可能的不用 interface 。例如配置管理,一般就会实现 env 和 args 两种,不用 interface ,约定大于配置。 但是例如 telegram bot api 的内联键盘,有很多种,但是都属于内联键盘,用 interface 套一层可以让逻辑清晰许多 |
2
SpiderXiantang OP 嗯 我这边需求就是有很多都是相同的流程 所以可以用 interface
|
3
SpiderXiantang OP 接口这东西 永远都是后期抽会比较好 golang 因为是隐式接口 所以可以延后抽象
|
4
ruanimal Feb 14, 2022
@SpiderXiantang 确实按需抽取比较好,不像 java 起手就是 n 个接口、Factory 、builder
|
5
joesonw Feb 17, 2022
而且如果入参只有一个地方用到的话, 可以
func xxxFunc(in interface { HandleResync() HandleWatch() }) {} |