架构的相关

作者: Alex1989 | 来源:发表于2021-03-22 10:32 被阅读0次

    作用:模块化,分层,解耦,降低代码重合度。
    设计一个图片缓存框架


    image.png

    图片通过什么方式进行读写过程?

    • 以图片URL的单向Hash值作为Key。
    • 流程:


      image.png

    内存设计上需要考虑哪些问题?

    • 存储的Size(设计不同的方式)
      10KB以下图片:50个
      100KB以下:20个
      大于100KB:10个

    • 淘汰策略
      1.以队列的方式先进先出的方式淘汰。
      2.LRU算法,在30分钟是否使用过(提高检查触发频率),每次进行读写,切换前后台触发。。。注意开销。

    磁盘设计需要考虑哪些问题?
    1.空间大,读取效率低,大小限制(100MB)
    2.淘汰策略(某以图片存储时间距今已超过7天)

    网络设计
    1.请求最大并发量
    2.请求超时策略
    3.请求的优先级

    图片解码在哪个阶段
    磁盘读取后或者网络请求返回后。

    设计一个时长统计?
    记录器:页面样式,瀑布流样式,自定义样式。
    记录管理者:记录缓存,磁盘缓存,上传器。

    image.png

    记录数据由于某种原因丢失的方案?

    • 定时写磁盘
    • 限定内存的缓存条数

    延时上传的场景?

    • 前后台切换
    • 无网到有网

    上传时机的把控?

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

    MVVM

    image.png

    客户端整体架构
    独立于App通用层(网络,埋点,崩溃)
    通用业务层(自定义控件,和业务相关)
    中间层(协调,解耦)
    业务层

    image.png

    cocoapods组件化管理的架构


    image.png

    业务之间的解耦通信

    • openUrl
    • 依赖注入

    相关文章

      网友评论

        本文标题:架构的相关

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