@kryhear
2016-06-07T16:18:43.000000Z
字数 653
阅读 800
LSMY
导购
由于项目之前是外包出去的,后期也有自己开发人员维护,导致整体架构非常乱,比如网络请求模块。
项目里比较多组件采用了
Swift
语言1.0
版本编写,部分语法在新版本不兼容,亦无法在新的Xcode
下编译,对新系统的兼容也较差。整个项目有很明显的
UITabBarController
+UINavigationController
的特征,却采用了Modal
的方式来管理controller
,相当不合理。很多可以复用的代码并没有抽取做方法或者类,比如 controller 里的冗余代码就很多。
针对上述情况,如果要将
Swift
编写的部分统一改成Objective-C
来实现的话,基本上是全部重做。这样的话,势必需要比较长的开发周期,还得先熟悉清楚原本的业务需求。否则,很容易出现功能错漏,毕竟该 App 除了一些眼见的功能外,还有一些隐藏功能,如后台录音。鉴于此,个人觉得先不做太大的改动,先针对上述主要问题做小规模(实则也不小)的重构,大概如下:
- 基于
Objective-C
重写网络请求库。- 重写
Swift
不兼容的语法部分,使其满足在新的Xcode
和SDK
中编译。- 改用
UINavigationController
的方式来管理controller
。- 抽取重复的代码,整合成相应的类和方法方便调用。
这样的话,重构的周期初步估计可以控制在5个工作日左右,代价亦可以大量的减小(包括测试)。
此外,经过上述重构,也能对整个 App 的业务流程有个进一步的了解,为进一步的重构做好基础。