[关闭]
@kryhear 2016-06-07T08:18:43.000000Z 字数 653 阅读 745

导购 App 的重构计划

LSMY 导购


目前项目存在的主要问题

  1. 由于项目之前是外包出去的,后期也有自己开发人员维护,导致整体架构非常乱,比如网络请求模块。

  2. 项目里比较多组件采用了 Swift 语言 1.0 版本编写,部分语法在新版本不兼容,亦无法在新的 Xcode 下编译,对新系统的兼容也较差。

  3. 整个项目有很明显的 UITabBarController + UINavigationController 的特征,却采用了 Modal 的方式来管理 controller,相当不合理。

  4. 很多可以复用的代码并没有抽取做方法或者类,比如 controller 里的冗余代码就很多。

解决方案

针对上述情况,如果要将 Swift 编写的部分统一改成 Objective-C 来实现的话,基本上是全部重做。这样的话,势必需要比较长的开发周期,还得先熟悉清楚原本的业务需求。否则,很容易出现功能错漏,毕竟该 App 除了一些眼见的功能外,还有一些隐藏功能,如后台录音。

鉴于此,个人觉得先不做太大的改动,先针对上述主要问题做小规模(实则也不小)的重构,大概如下:

  1. 基于 Objective-C 重写网络请求库。
  2. 重写 Swift 不兼容的语法部分,使其满足在新的 XcodeSDK 中编译。
  3. 改用 UINavigationController 的方式来管理 controller
  4. 抽取重复的代码,整合成相应的类和方法方便调用。

这样的话,重构的周期初步估计可以控制在5个工作日左右,代价亦可以大量的减小(包括测试)。
此外,经过上述重构,也能对整个 App 的业务流程有个进一步的了解,为进一步的重构做好基础。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注