架构相关

作者: huoshe2019 | 来源:发表于2019-10-17 20:19 被阅读0次
    标题

    一、图片缓存框架面试题

    问题1:怎样设计一个图片缓存框架?

    图片框架

    问题2:图片通过什么方式进行读写,过程是怎样的?

    读写方式:

    • 以图片URL的单向Hash值作为Key进行存储和读取
      过程:
      过程

    问题3:图片缓存框架中内存的设计需要考虑哪些问题?

    • 存储的Size
      1、对不同大小图片,设置最大数量。
      2、图片是先进先出。


      Size
    • 淘汰策略
      1、以队列先进先出的方式淘汰。
      2、LRU算法(如30分钟之内是否使用过)。LRU算法实现如下:


      LRU算法

    问题4:磁盘设计需要考虑哪些问题?

    • 存储方式
    • 大小限制(如100M)
    • 淘汰策略(如某一图片存储时间距今已超过7天)

    问题5:网络部分的设计需要考虑哪些问题?

    • 图片请求最大并发量
    • 请求超时策略
    • 请求优先级

    问题6:对于不用格式的图片,解码采用什么方式来做?

    • 应用策略模式对不同图片格式进行解码

    问题7:在哪个阶段做图片解码处理?

    解码时间点

    问题8:框架中线程处理是怎样的?

    线程处理
    • 先从内存缓存中读取。
    • 内存缓存中不存在,则从磁盘中读取;如果读取成功,则存入内存缓存。
    • 磁盘中不存在,则从网络下载;如果网络下载成功,则存入内存缓存。

    二、阅读时长统计面试题

    问题9:怎样设计一个时长统计框架?

    时长统计框架

    问题10:为何有不同类型的记录器,你的考虑是什么?

    记录器

    问题11:记录的数据会由于某种原因丢失,你是怎样处理的?

    也就是降低丢失率。


    降低丢失率

    问题12:记录上传器,关于延时上传的具体场景有哪些?

    延时上传场景

    问题13:记录上传器,关于上传时机是怎样把控的?

    上传时机

    三、复杂页面架构

    以微博为例

    3.1、整体架构

    整体框架

    整体框架

    视图层

    视图层

    业务逻辑层

    业务逻辑层

    数据层

    数据层

    3.2、数据流

    数据流

    3.3、反向更新

    反向更新

    3.4、总结

    MVVM

    MVVM

    RN数据流

    RN数据流

    四、客户端整体架构

    4.1、整体框架图

    整体框架图

    问题14:业务之间的解藕通信方式?

    方式

    4.2、依赖注入

    依赖注入

    这里业务A依赖业务C
    通过将业务C注入到中间层业务A通过中间层获取所需要的信息,从而达到了业务解藕

    五、总结

    相关文章

      网友评论

        本文标题:架构相关

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