美文网首页
对于项目重构的一些梳理

对于项目重构的一些梳理

作者: Ba_Ag | 来源:发表于2018-05-19 19:09 被阅读0次

写在前面的话:

很久没有写过东西了,平时有些想法习惯记录在备忘里。从项目开始重构,也有同步把自己遇到的问题梳理一下的想法。接手整个项目也快一年了,中间经过两三次重大版本的更改,目前项目涉及到业务有直播,社交,动态,核心业务暂且归为这三个模块。这次重构也考虑了很久,实在是再也无法忍受当前项目的整体架构,由于项目经手的人员比较多,各种代码风格都有,而且大量使用了Storyboard和Xib,刷新和加载更多就存在三种,数据解析处理更是混乱。核心的直播模块类已经达到将近6000行的代码,网络请求类也4000行左右的代码,代码整体采用了MVC的设计模式,耦合度很高,每次修改一些东西很痛苦。项目中也做了一些马甲包,采用了一个项目多target做法处理马甲包。每次编译工程,总要经过漫长的等待。综上,终于下定决心重构整个项目。

关于重构的几个点:

1. 首先对于整体业务模块,复杂的业务采用VIPER的设计模式进行重写,简单的业务还可以继续采用MVC的模式处理。主要是解决重控制器并尽可能的解耦合,还有在此过程中逐步删除故事板和Xib。

2. 对于网络层,之前的网络层是集约化的调用,随着项目业务的逐渐增加,虽然对网络请求经过了几层封装,但是核心的接口层,还是过于庞大。所以决定采用离散型的方式去重构网络层,对于每个网络请求都是一个独立的API类,这样虽然项目整体文件会增多,但是业务会清晰了不止一个档次。PS:网络层是集成了YTKNetwork,并基于自己的项目的需求做了一些更改。

3. 基础UI组件,Category的整理。这一点整理之前真的很庞大,几乎在这里找到所有人写的小组件,但是也几乎是没有参考也没有看过别人写的东西,很多东西都是重复的。

4. 对于数据的缓存重构,因为项目涉及到IM,还有动态,项目采用了大量的数据缓存处理,包括内存缓存和磁盘缓存。自己也是第一次接触,这么大量的缓存处理。目前项目整体采用了四种存储方式,YYCache,WCDB,NSUserDefault,文件存储。

5. 对于整体项目的UI规范,代码规范,宏定义,枚举等整理。

6. 基于以上五点,处理完成以后,开始对项目划分粒度,并开始对项目进行模块化。初步的模块化方案是采用CocoaPods将各个模块剥离,打包成静态库。主项目只作为壳工程。

End:

以上是对于此次重构的基础方向,后续会逐步更新一些文章,介绍具体的重构进程和上面六点详细处理方案,以及自己对VIPER设计模式的理解,网络层的封装,数据存储的处理,还有对于组件化方案的实践。

相关文章

  • 对于项目重构的一些梳理

    写在前面的话: 很久没有写过东西了,平时有些想法习惯记录在备忘里。从项目开始重构,也有同步把自己遇到的问题梳理一下...

  • 开源IM项目OpenIM 客户端SDK架构剖析-确保消息的有序性

    开源IM项目OpenIM第二版对于客户端架构进行了局部重构,解决了消息触发时序等bug,也梳理了内部模块。目前已经...

  • 工作总结

    主要完成了FM的项目对接与梳理,对已完成的页面做了一次ckeck,重构有问题的页面 重构了古诗的日历控件,并修复一...

  • 前端代码重构

    前端代码重构首先要对原有的项目做大概的梳理,既然是重构,当然是不能改变之前的需求交互,那么就需要根据产品的完整需求...

  • 浅析SSR(服务端渲染)和SPA(客户端渲染)

    一、前言 C端项目重构成首屏服务端渲染(SSR:serve side render),对于重构成SSR,redux...

  • 重构

    why 对于项目来言,重构可以保持代码质量持续处于一个可控状态,不至于腐化到无可救药的地步。对于个人而言,重构非...

  • 传统项目springboot化---springmvc框架jsp

    目标 对于一些还在使用springmvc的老项目需要springboot化时的一些改造点梳理,附上demo代码,s...

  • iOS重构实践

    最近完成了我司iOS项目的重构,把整体的代码架构都梳理了一遍,主要按照MVP的架构模式,并综合考虑了重构的难度和效...

  • 移动web前端重构---原项目梳理

    一、原项目梳理 1、页面风格 差异性: 2、交互多标准 3、前端框架、模板引擎两套技术栈 4、第三方库、组件、插件...

  • 组合函数实现代码复用

    最近在 Vue.js 项目重构中,体会到了 Composable 的代码复用价值. 这里梳理一下. 业务中, 很...

网友评论

      本文标题:对于项目重构的一些梳理

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