我已经在过去的九个月中公开测试Saneject,一个用于Unity的免費和开源的DI编辑时间框架,并且今天我将发布版本1.0.0。
它始于一个相对简单的沮丧。 我想要Unity中的DI结构,但我不想要精景、隐蔽的调试、运行时引导或在引擎之上的一切生命周期。 我希望它与Unity一起工作而不是围绕它。
所以,我在不同的想法上构建了一个原型: 在Unity编辑器中解决依赖关系并将它们写入序列化字段。 这样,连接就可以在调试器中可见,包括接口(感谢Roslyn生成的隐形起始语句),并且运行时很接近正常的Unity。
原型快速证明了这一点, 但基础不够坚实。 它有工作,但基本上是一个大循环,尝试处理遍历、发现、验证、注入和记录所有内容,一切都混杂在一起,没有真正的关注点分离。
六个月后,我意识到我需要停止扩展这种版本并重建核心。 这个重写成为真正的项目。 它为Saneject赋予了更强的基础,使用图表和基于阶段的架构,并且让我能够修复老模型中的几个基本问题。
在这个版本被公开测试很长时间后,1.0.0是版本,我感到舒服地将其称之为生产就绪版本。
它并不试图回答每种DI用例的答案。 交易是连接 trở成写作工作流程的一部分,结果在运行时固定,这正是点子,但它不适合每种类型的项目。
我收集了幻灯片来给读者提供快速概述Saneject。 有关深入了解的细节,请参阅该框架的文档,包括入门、核心概念、架构、API和更多内容。
Reddit会毁掉图像质量,所以我也提供了高分辨率的副本:
https://saneject.dev/slides
如果您尝试它,我很感兴趣地听到什么有效果,什么效果差,感觉模糊以及这个模型适合您项目还是不适合。
- 支持的Unity版本:2022.3.12+
- GitHub:https://github.com/alexanderlarsen/Saneject
- 文档API:https://saneject.dev
- 架构概述:https://saneject.dev/docs/architecture/architecture-overview
评论 (0)