框架/ 架构
- 模块化
- 分层
- 解耦
- 降低代码的重合度
图片缓存
- 如何设计一个图片缓存框架?
- 图片通过什么方式进行读写, 过程是如何的?
- 以图片URL的单向hash值作为key
-
内存设计
- 内存设计上面应该考虑哪些问题?
-
存储的size
- 淘汰的策略
- 一队列先进先出的方式淘汰
-
LRU
-
存储的size
- 内存设计上面应该考虑哪些问题?
-
磁盘设计
- 磁盘设计需要考虑的问题?
- 1> 存储方式
- 2> 大小限制(eg: 100MB)
- 3> 淘汰策略(如果某一个图片存储时间距今已经超过5天)
- 磁盘设计需要考虑的问题?
-
网络设计
- 需要考虑的问题?
- 图片请求最大并发量
- 请求超时策略
- 请求优先级
- 需要考虑的问题?
-
图片解码
- 对于不同格式的图片, 解码采用什么样的方式去做?
- 应用策略模式对不同图片格式进行解码
- 在哪个阶段做图片解码处理?
- 磁盘读取后
- 网络请求返回后
- 对于不同格式的图片, 解码采用什么样的方式去做?
-
线程处理
阅读时长统计
-
如何设计一个时长统计框架
a) 记录器- 分类:
- 页面式
- 流式
- 自定义式
- 为什么要有不同类型的记录器, 你的考虑是什么?
- 基于不同分类场景提供的关于记录的封装, 适配
- 自定义式的记录器是为了框架有更好的扩展性和灵活性
b) 记录管理者
- 记录缓存:
- 记录的数据, 可能会由于某种原因丢失, 你是如何处理的?(如何降低丢失率)
- 定时写入磁盘, 固定间隔某一时间写入磁盘
- 限定内存缓存条数, 如果达到某个值, 就写入磁盘
- 记录的数据, 可能会由于某种原因丢失, 你是如何处理的?(如何降低丢失率)
- 磁盘缓存: 为了处理手机端的一场情况 -> 断电, 突然杀死app
- 上传器:
- 关于延时上传的具体场景有哪些(立即上传耗流量和性能)
- 前后台切换的时候
- 从无网到有网的切换
- 通用轻量接口捎带上传
- 上传时机是如何把控的?
- 立即上传
- 延时上传
- 定时上传
- 关于延时上传的具体场景有哪些(立即上传耗流量和性能)
- 分类:
复杂页面架构
-
MVVM框架思想
-
ReactNative的数据流思想
客户端整体架构
- 设计方式
- 业务之间的解耦方式
- OpenUrl
- 依赖注入