项目地址:https://github.com/gone-io/gone
原文地址:https://github.com/gone-io/gone/blob/main/docs/gone-v1-to-v2-analysis.md
文章目录
Gone 框架在 v2 版本中进行了全面的更新和改进,主要目标是简化框架概念,提高易用性和性能。本文档将详细分析 v1 到 v2 的主要变化。
1. 概念简化与术语变更
v1 版本中,Gone 框架使用了大量宗教性的概念和术语来描述框架的各个部分,这些术语在 v2 版本中被替换为更加直观和技术性的术语:
| v1 版本术语 | v2 版本术语 | 描述 |
|---|---|---|
| Heaven | Application | 应用程序实例,负责管理组件的生命周期 |
| Cemetery | Core | 框架核心,负责组件的注册和管理 |
| Priest | Loader | 组件加载器,负责将组件加载到框架中 |
| Goner | Goner | 保留,但定义更加明确,指嵌入了 gone.Flag 的结构体指针 |
| Prophet | 移除 | v2 版本使用更清晰的生命周期方法替代 |
| Angel | 移除 | v2 版本使用更清晰的生命周期方法替代 |
| Vampire | Provider | 转变为更直观的 Provider 机制 |
| Tomb | 移除 | 简化了相关概念 |
这种术语变更使框架更加专业和易于理解,降低了学习曲线,使开发者能够更快地上手使用框架。
2. 接口重新设计
v2 版本重新设计了框架的接口,减少了内部方法的暴露,使接口更加清晰和易于使用:
2.1 组件定义的简化
v1 版本中,组件需要嵌入 gone.GonerFlag,而在 v2 版本中,组件只需要嵌入 gone.Flag:
// v1 版本
type Component struct {
gone.GonerFlag
}
// v2 版本
type Component struct {
gone.Flag
}
2.2 组件加载方式的统一
v2 版本提供了更加一致和灵活的组件加载方式:
// v1 版本
func Priest(cemetery gone.Cemetery) error {
cemetery.Bury(&Component{
}, "component-id")
return nil
}
// v2 版本
gone.Load(&Component{
}) // 直接加载
gone.Load(&Component{
}

最低0.47元/天 解锁文章
2173

被折叠的 条评论
为什么被折叠?



