关于项目重构之后的某个回顾

许久不写技术笔记了,倒是生活笔记有一直在的,也算是笔记这块没有荒废吧。近段时间我们项目进行 SOA 重构,此时快进入尾声了,对其中的一些点进行回顾下啦,本篇主要是描述对于App 内部灰度发布的方案的探讨。

  • 背景
  • 可选方案
  • 我们选的
  • 遇到的一些问题
一、背景

此时是一个特殊的需求,具体原因和形式不做过多说明,就是我们需要实现一个功能: 在一个 App 内满足两套环境执行,国家 A 走 A 环境,国家 B 走 B 环境,当然以后最终都是走一套环境,只是在这个时间段内,我们需要满足用户所处的不同 IP 进行区分环境。

不同环境的接口和返回参数结构都不同的

当然通常的情况下,这种都不应该由我们 App 端来做了,直接后端做的!此处做了所以说是情况特殊嘛!!!!
PS: 安卓是直接分包,相对于我们 iOS 来说还是方便很多的。

二、可选方案
  • 1、一套代码里面直接判断
  • 2、制作成两个App, 封装成 Framework 形式
  • 3、模块化,将其分成不同的模块,哪里需要哪里调用
  • 4、项目中两套代码,全部改写类名

然而最终我们选的是最后一套方案,至于大致原因如下:
第一个方案太麻烦,太容易乱了直接Pass;
第二套方案,主要是针对每次修改都要打包这个过程过于麻烦了,毕竟怎么着都有BUG的
同时对于 AppDelegate 中的一些同时问题,是有一些坑的,没有试过;
第三套是,我们之前并没能做到模块化,这次具体完整实施起来太麻烦了,工作量太大。

三、我们选的

我们将具体业务层中的代码,重新全部命名类文件名!当然为了分清,最后
我们将 AppDelegate 都直接改名字了,在 main 函数中判断走哪一套的, 当然这样不会做到每次启动就随时改变环境,而是得等到下一个启动才真正的切换环境。

main.m
类似项目中的划分
四、遇到的一些问题
  • 工作量大而细
  • 分类方法的重复

整体下来其实还好,关键是第一个重新命名这块,不仅是文件名,还有各种变量之类的,还好我们行哥哥还是很行的,这块的工作在大致的调整后,之后修修改改也就差不多了。

对于分类方法中的一些重复, 一定要重新命名,否则容易找不到方法的

当然我们还有一些对黑魔法的担忧,毕竟项目这样子下来每次运行的文件名,就有 3000 多,所以对于一些问题只能遇到一个解决一个,所以此处项目的测试时间还是需要久一点的。

当然这个灰度版本一过,我们即将要删,首先 Old 项目中的东东全部干掉,其次对于一些没用到的文件类和图片全部整理一次,另外对于 PCH 中进行精简。
PS: 这是一个特殊的需求,一般不需要 App 这边来做的,此处记录仅仅是对这个繁琐而大的事情进行另类的一种吐槽吧,哈哈哈

你可能感兴趣的:(关于项目重构之后的某个回顾)