接手一老项目,经过几个月之后,实在顶不顺原来的架构,一样事情要干两件活,代码冗余复杂,给维护工作带来很多问题和隐患,趁着前段时间新需求比较少,遂与产品负责人沟通之后暂停新需求,先进行项目重构。于是就花了近一个月的时间对其架构进行重构,首先是将接入部分和业务处理部分分离,其次是将业务处理部分集中,再次是引入内存数据库,实现业务处理部分无状态,将所有状态保持在内存数据中,从而使得业务处理进程可以多个进程并行,并且可以进行业务处理模块的无间断更新。重构完之后可以说是脱胎换骨了,其中有些心得和体会分享一下。
1、重构的本质
这次的重构由自己一个人设计和实现,经过这次项目重构,对于重构的本质有了更加深刻的认识。抽象地来说,重构就是一个变换,把原先的代码进行变换,得到新的代码,而这个新的代码的外部接口和输入输出都是和原先的代码一样。
2、重构的步骤
在分析的时候首先是进行模块的功能和接口的分解,将原先代码中的模块功能与接口分解,然后组合到新代码的模块中去,形成新的模块和接口。在新的架构中,需要引入新的模块间通信协议,先设计和实现新模块间的通信协议,并且测试通过之后,再设计和实现新架构中可以重用的元素。重用元素通过测试之后再进行原模块到新模块的迁移,并进行单元测试。
最后进行集成测试。
在整个过程中,测试非常重要,除了单元测试之外,因为整个架构进行了重构,集成测试也非常重要。而且最好是自己也进行测试,不能仅交给测试人员进行测试。在代码迁移的过程中,代码的拷贝以及替换是最需要小心的,一定要注意拷贝对象以及替换对象的语义。
时间: 2024-10-19 20:21:45