《新浪微博剖析 iOS 高级面试》笔记(十):架构框架相关面试问题

1,178 阅读2分钟

我的Github地址

小码哥《恋上数据结构与算法》笔记

极客时间《iOS开发高手课》笔记

iOS大厂面试高频算法题总结

iOS面试资料汇总

图片缓存

  • 怎样设计一个图片缓存框架?
  • 图片通过什么方式进行读写,过程是怎样的?
    • 以图片URL的单向Hash值作为Key
  • 内存的设计上需要考虑哪些问题?
    • 存储size
    • 淘汰策略
      • 以队列先进先出的方式淘汰
      • LRU算法(如30分钟之内是否使用过)
  • 磁盘设计需要考虑哪些问题?
    • 存储方式
    • 大小限制(如100MB)
    • 淘汰策略(如某一图存储事件距今已超过7天)
  • 网络部分的设计需要考虑哪些问题?
    • 图片请求最大并发量
    • 请求超时策略
    • 请求优先级
  • 对于不同格式的图片,解码采用什么方式来做?
    • 应用策略模式对不同图片格式进行解码
    • 在磁盘读取后,网络请求返回后,进行图片解码处理。
  • 线程处理

阅读时长统计

  • 怎样设计一个时长统计框架?

  • 为何要有不同类型的记录器,你的考虑是什么?

    • 基于不同分类场景提供的关于记录的封装、适配。
  • 记录的数据会由于某种原因丢失,你是怎样处理的?

    • 定时写磁盘
    • 限定内存缓存条数(如10跳),超过该条数,即写磁盘
  • 关于延时上传的具体场景有哪些?

    • 前后台切换
    • 从无望了到有网的变化
    • 通用轻量接口捎带
  • 上传时机是怎样把我的?

    • 立即上传
    • 延时上传
    • 定时上传

复杂页面架构

  • MVVM框架思想
  • RN的数据流思想
  • 系统UIView更新机制的思想
  • FaceBook的开源框架AsyncDisplayKit关于预排版的设计思想

客户端整体架构

  • 业务之间的解耦方式
    • openurl
    • 依赖注入

架构/框架面试总结

  • 图片缓存
  • 阅读时长统计
  • 复杂页面架构
  • 客户端整体架构