2017爱阅帮项目总结

项目亮点优点
大的:

  1. 通过私有库将网络模块、Api模块、Utils拆分,做到多项目公用(离散Api->Base处理->AFN集约Api)
  2. 网络库的配置,动态Api
  3. 部分业务的实现逻辑还是可以借鉴的,虽然也有不少待优化的地方(目前想完善视频播放器及下载管理器两个部分)
    小的:
    部分UI感觉还是蛮漂亮(难)的。。
    用到了Mantle,属性映射、转换等功能
    用到了Lottie,使用AE生成的简单的JSON动画

项目的不足及反思

  1. 项目开始的时候架构没有做好,比如没有定义基类,这导致部分功能需要使用AOP实现,但这样实际是不太安全并且不推荐的,部分工具的中间层没有做好,这样导致在需求改变的时候需要多处修改(HUD,其实还好在BKTools里面)
  2. 类的单一职责原则没有很好的遵守,比如一些类的职责混杂,比如工具类BKTools,其中的一些方法是可以划分到分类中或者专门拆分出一个工具类的,又或者HBReaderClubCourseViewModel,里面的工具方法涉及到字符串格式化、路径生成及获取、视频处理、状态的存取等
  3. 避免硬编码,尽量避免写死可变的变量,如StatusBar的高度等,在iOS11中就改变了,使得很多硬编码的地方需要修改,还有就比如字体、颜色等最好找设计师索要设计风格概览,统一同类的控件的参数放在分类中,避免硬编码(Xcode9现在在IB中也可以自定义颜色和字体了)。
  4. 部分功能复杂的类在实现的时候,最好应用MVVM或者到组合的设计模式,将不同的功能实现分离,尽可能做到代码清晰,降低耦合。
  5. 老旧代码过多,导致文件过多,不能统一,历史包袱太重,部分设想无法顺利开展,比如使用Swift

小的:

  1. 网络库的设计没有考虑到所有情况,比如网络断开是否可以AOP统一处理等

你可能感兴趣的:(2017爱阅帮项目总结)