原味岚

iFoundation

互联网 2024-07-13 03:26:10

是一个基于消息驱动的插件化快速开发框架。目标是建立标准化规范,让散乱的模块聚沙成塔,快速组合成不同的产品形态。适用于各类终端产品的底层架构。利用本框架可以分离业务与逻辑,让相同的逻辑复用于不同的业务产品,同时提供丰富的组件,极大的提高开发效率。

#设计背景

希望设计一个简单稳定的开发框架,可以用于目前的业务,同时适用于未来的其他业务场景。

需要支持插件化,可以让不同团队高效协同开发。

需要支持对外开放,允许任何第三方开发者自己开发插件来扩展业务。

需要支持高度定制化,满足ToB的各种企业定制需要。

需要提供配套的开发、调试、测试工具,降低开发难度,提高开发效率。

#框架特点

简单稳定: 框架的接口、使用足够简单,而且保证不受业务变化而改变。

方便扩展: 在接口不变的情况下,可以通过扩展来满足任何业务需要。

开放平台: 允许第三方开发者协同开发。

积木组合: 不同插件可以组合出不同的业务需求,每一个插件都可以轻易替换定制。

质量保障: 内部集成调试、测试、mock等各类工具。

#框架组成

插件管理: 负责插件的注册、加载、动态卸载、热更新

消息管理: 负责插件消息的分发、监控、拦截、模拟、统计

接口管理: 负责插件依赖接口的创建

进程管理: 负责多进程模型下子进程的管理、进程间通信、消息的跨进程分发

#插件类型

服务插件: 分发消息、响应调用(响应消息)

业务插件: 监听消息、调用服务(发送消息)

扩展插件: 通过依赖注入提供扩展接口给服务插件、业务插件使用

#配套工具

插件加载器: 可以使用加载器来调试某一个模块,大大降低开发调试的成本。

脚本模拟器: 一些插件可能需要某些场景才能正常启动,使用模拟脚本可以构造出相同的场景,方便测试到所有的路径。

调试服务器: 在客户端会内置一个小型的服务器,通过服务器页面可以模拟分发消息、服务调用,也监控整个框架的消息流转过程。

自动化测试: 整个系统是基于消息驱动的,将这些消息录制保存起来,通过回放的方式,就可以对某一个插件做自动化测试。