实战经验
架构模式实战经验
- 前言 
- 背景 
- 脚手架项目的由来 
- 架构图总览 
- 福利 1:DataBinding 严格模式 
- 福利 2:UnPeek-LiveData 发送一次性事件 
- 福利 3:Smooth-Navigation 使转场顺滑 
- Note 2020.10.28 加餐 - 透过 State-ViewModel 托管和恢复状态 
- 透过 Event-ViewModel 跨页面通信和 “消息鉴权” 
 
- 通过 Request 来复用转发逻辑 
- Note 2020.11.03 加餐 - 正确区分 “可变状态” 和 “只读数据” 的本质及作用 
- 而这也就顺带解析了 为什么有了 ViewModel 还要有 Request 
 
- 通过 UseCase 管理可叫停的业务 
- 通过 DataResult 回调数据层结果 
- Note 2020.12.01 加餐 - 对 DataResult v1.1 新设计的补充说明 
 
- 综上 
- 前言 
- 姗姗来迟的笼统描述 
- “数据倒灌” 的由来 
- 为什么会有数据倒灌 - Note 2020.07.17 加餐: 
- 图文解析数据倒灌发生的场景 
 
- 为何非要通过 ViewModel + LiveData 来处理页面通信? 
- 为什么通过全局 ViewModel 而不是 静态单例? 
- 为什么不用 LiveDataBus? 
- 最新的 Result API 如何? 
- Event 事件包装器、反射方式、SingleLiveEvent 分别存在什么问题? 
- UnPeekLiveData 是如何解决这些问题的? 
- GitHub & Maven 依赖 
- 综上 
- Note 2020.07.21 加餐: - UnPeekLiveData 增加一层 ProtectedUnPeekLiveData 的设计缘由解析 
 
- Note 2020.10.15 加餐: - 升级到 UnPeekLiveData v4.0 享用 “更快更稳” 的防倒灌机制 
 
- Note 2021.04.22 加餐: - 升级到 UnPeekLiveData v5.0 获得更好的内存性能和更友好的 API 访问 
 
- Note 2021.06.18 加餐: - 是代码复杂度更小的 UnPeekLiveData v6.0 设计 
 
- Note 2021.07.19 加餐: - 是代码复杂度进一步减小的 UnPeekLiveData v6.1 
 
- Note 2021.08.10 加餐: - 分享一份 v6.1 源码简化版,方便对核心 “防倒灌” 机制的理解 
 
- Note 2021.08.12 加餐: - 是内存管理效率进一步优化的 UnPeekLiveData v7.0 
 
- Note 2021.08.21 加餐: - 分享一份 v7.2 源码完整版,是简练完整的防倒灌设计 
 
- 前言 
- 为什么要提及 “一致性问题” 
- 架构组件和 “一致性问题” 的密切关系 
- 到底什么是一致性、什么是一致性问题 
- 关于 “解决一致性问题” 的举一反三 - Lifecycle 是通过 ____ 来实现 生命周期管理的一致性 
- LiveData 是通过 ____ 来实现 消息同步的一致性 
- DataBinding 是通过 ____ 来实现 视图调用的 null 安全一致性 
 
- 综上 
- 前言 
- 并不是每一个提问都值得被回答 
- 本质和区别,我只说一遍 
- 先说结论 
- 所以二者的区别是什么? 
- Jetpack MVVM 和 MVVM 模式的关系 
- 我为什么能瞬间感知沟通质量的 “好” 与 “坏” ? 
- 综上 
- Note 2020.09.10 加餐: - Jetpack MVVM 或借鉴了 MVI 开发模式 
 
- Note 2020.12.31 加餐: - “依赖倒置” 的适用场景 及 源码设计分享 
 
- 前言 
- 绝对自由和自由的代价 
- 边界意识和监管下的真自由 
- LiveData 的本质和精髓 
- 所以 LiveDataBus 的问题在于 
- 用工程化的语言再捋一捋 
- 关于 “唯一可信源” 的定义 
- 综上 
- 前言 
- 第一层:LiveData 是与 UI 打交道的 “最后一环” 
- 第二层:LiveData 可以推状态,也可以推事件 - 广播:封闭式 的 发布订阅模式 
 
- 第三层:LiveData 支持 “唯一可信源” 的鉴权设计 - 状态是私域的,事件是公域的 
- 公证处:开放式 的 发布订阅模式 
 
- 第四层:LiveData 存在 “数据倒灌” 的问题 - 使用 UnPeek-LiveData 解决 “数据倒灌” 问题 
 
- 综上 
最后更新于
这有帮助吗?
