拥有多模块 golang 存储库是否有意义,这样人们就不必仅仅为了它的类型而导入我的库



我正在编写一个库来简化流处理,该库公开了接口,以便人们可以编写插件和中间件。这样做的问题是,一些接口使用了库中定义的具体类型,这迫使人们只为它的类型导入我的库。我在想,把我所有的类型和接口都放在一个单独的包里,用它自己的go.mod文件,这样人们就可以导入类型包,而不必拉入整个库。

package ziggurat
import "context"
type Handler interface {
HandleEvent(event Event) ProcessStatus
}
type Streams interface {
Consume(ctx context.Context, handler Handler) chan error
}
type StructuredLogger interface {
Info(message string, kvs ...map[string]interface{})
Debug(message string, kvs ...map[string]interface{})
Warn(message string, kvs ...map[string]interface{})
Error(message string, err error, kvs ...map[string]interface{})
Fatal(message string, err error, kvs ...map[string]interface{})
}
type Event interface {
Value() []byte
Context() context.Context
Header(key string) string
}

要实现Handler接口,人们必须使用Event接口,这需要他们拉入整个库。

拥有多模块golang repo是否有意义,这样人们就不必仅为其类型导入我的库[?]

否。

相关内容

最新更新