1作者: grindlemire19 天前
看看我编写的 Go 语言极简依赖注入库 Graft: <p><a href="https://github.com/grindlemire/graft" rel="nofollow">https://github.com/grindlemire/graft</a><p>我通常不喜欢依赖注入框架,因为它们充斥着各种“魔法”和繁琐的样板代码。特别是在 Go 语言中,我发现像 Wire 或 Fx 这样的工具对于小型项目来说过于笨重,除非是大型企业级代码库。然而,在更大的代码库中,我仍然经常遇到依赖关系混乱的问题,这使得代码维护变得非常痛苦。<p>Graft 试图找到一个中间地带,它更像是一个库而不是一个框架。它具有类型安全,不使用反射或代码生成,并且编译器可以在编译时检测循环依赖和缺失的依赖。我还提供了一个单行测试辅助函数,用于验证您的整个依赖关系图在 CI 流程中是否完整且无循环依赖。<p>我已经在几个项目中使用它,效果非常好,它提供了足够的结构,而没有依赖注入的典型“魔法”或手动连接的复杂参数路由。<p>我很乐意收到您的反馈!