如上图所示:整个app的架构分为了4层
- 1、最上面是App壳,用于加载各个业务模块
- 2、业务层:包含了现有的原生代码写的业务,以及后期使用RN接入新的业务模块
- 3、服务层:包含了基础服务,UI组件和功能模块,以及第三方平台服务
另外:页面路由和事件订阅会贯穿业务层和服务层 - 4、基础库层:集中依赖1,2,3层普遍会使用到的基础库
基于目前单兵作战的现状,以及功能的快速变更,业务层没有进一步拆分,拆的过于细反而会影响开发效率,但随着业务的不断复杂增多,以及用户数量的增加,为了降低用户的更新成本,会加入热修复和插件化的功能,进一步拆分业务层,独立出业务组件发布到云效平台。
下图为具体各个模块对应的module分布,实线框为真实的module
业务层采用MVVM的开发模式:如下图所示:
View:负责UI显示,用户交互事件处理,
Model:数据模型,本地数据或者网络数据获取;
ViewModel:负责对Model和View的通信桥梁。
目前项目中没有用到数据库--Room,但已经预留了接口,Repository负责对VM层,具体数据来源VM不需要关心
除了基础服务层 和 业务层 两个module,其他module 都已经抽离并发布到云效-如下图所示:
下图主要展示了基础服务层(app-base)和业务层(app)现有的代码目录结构,这些部分的代码会时常变动和新增,稳定之后会继续剥离,发布到云效仓库中。
目录不建议太要深,3级以内为最佳。