美文网首页
iOS面试12 - 结构/框架

iOS面试12 - 结构/框架

作者: 奋斗的老王 | 来源:发表于2019-05-27 10:17 被阅读0次

    框架/ 架构

    1. 模块化
    2. 分层
    3. 解耦
    4. 降低代码的重合度

    图片缓存

    1. 如何设计一个图片缓存框架?
    • 2019-02-16 下午10.17.17.png
    1. 图片通过什么方式进行读写, 过程是如何的?
    • 以图片URL的单向hash值作为key
      • 2019-02-16 下午10.19.29.png
    1. 内存设计

      • 内存设计上面应该考虑哪些问题?
        • 存储的size 存储size及方式
        • 淘汰的策略
          • 一队列先进先出的方式淘汰
          • LRU 淘汰策略
    2. 磁盘设计

      • 磁盘设计需要考虑的问题?
        • 1> 存储方式
        • 2> 大小限制(eg: 100MB)
        • 3> 淘汰策略(如果某一个图片存储时间距今已经超过5天)
    3. 网络设计

      • 需要考虑的问题?
        • 图片请求最大并发量
        • 请求超时策略
        • 请求优先级
    4. 图片解码

      • 对于不同格式的图片, 解码采用什么样的方式去做?
        • 应用策略模式对不同图片格式进行解码
      • 在哪个阶段做图片解码处理?
        • 磁盘读取后
        • 网络请求返回后
    5. 线程处理

      • 查找图片

    阅读时长统计

    1. 如何设计一个时长统计框架
      a) 记录器

      • 分类:
        • 页面式
        • 流式
        • 自定义式
      • 为什么要有不同类型的记录器, 你的考虑是什么?
        • 基于不同分类场景提供的关于记录的封装, 适配
        • 自定义式的记录器是为了框架有更好的扩展性和灵活性

      b) 记录管理者

      • 记录缓存:
        • 记录的数据, 可能会由于某种原因丢失, 你是如何处理的?(如何降低丢失率)
          • 定时写入磁盘, 固定间隔某一时间写入磁盘
          • 限定内存缓存条数, 如果达到某个值, 就写入磁盘
      • 磁盘缓存: 为了处理手机端的一场情况 -> 断电, 突然杀死app
      • 上传器:
        • 关于延时上传的具体场景有哪些(立即上传耗流量和性能)
          • 前后台切换的时候
          • 从无网到有网的切换
          • 通用轻量接口捎带上传
        • 上传时机是如何把控的?
          • 立即上传
          • 延时上传
          • 定时上传

    复杂页面架构

    1. MVVM框架思想

      • MVVM流程
    2. ReactNative的数据流思想

      • 任何一个子孙节点是没有权利更新的, 需要从根节点自顶向下遍历更新
    • 屏幕快照 2019-02-17 上午11.17.03.png

    客户端整体架构

    1. 设计方式
      • 屏幕快照 2019-02-17 上午11.28.48.png
    2. 业务之间的解耦方式
      • OpenUrl
      • 依赖注入
        • 依赖注入的具体实现!!!!!

    面试总结

    相关文章

      网友评论

          本文标题:iOS面试12 - 结构/框架

          本文链接:https://www.haomeiwen.com/subject/goxweqtx.html