随着互联网技术的飞速发展,开发语言和技术架构的不断创新,有许多传统企业的老系统需要推倒重来,迎合新时代的发展,向信息化、数字化和智能化转型。
这几年微服务架构和中台架构的兴起,有许多传统企业所使用的系统还是十几年前的单体架构,功能通常聚集在一个系统上,功能繁杂混乱,导致新功能开发上受到限制。性能上也会遇到瓶颈,这些问题都将影响到业务的发展,所以重构是势在必行。
有幸这几年我参加过几个旧系统的重构,有的项目从头到尾跟进负责,有的项目是中途才加入,项目有大有小。接下来通过几篇文章来分享一下重构路上的经验和反思,主要以内部系统的重构为主,希望对大家有所帮助。
重构,也就是重做。这对于产品研发团队,甚至运营,各个系统的用户来说简直是噩梦,这相当于所有的东西都需要重头开始。所以在重构开始前我们需要弄清楚为什么需要重构?
为什么需要重构?
1、旧系统的开发语言或框架不再维护和更新,一些由底层技术或框架引起的问题无法修复,特别是影响到核心功能。
2、老板、高层领导和业务方有各种各样的新需求,但因旧系统的技术受限而难以实现。新业务或功能通过旧系统的技术和框架无法实现,或者开发起来难度较高,耗费时间较长。如果继续在旧系统开发可能无法达到预期,并且投入的成本会较高。
3、系统遇到性能瓶颈,因为旧系统的底层技术和框架问题,难以再进行优化。像电商系统,当做促销活动时,如618、双十一等活动,并发量较大,超出了平时的流量甚至翻倍,那就可能导致系统无法承载,这时候只能通过增加服务器来临时解决。要把问题从根源上解决除非能优化现有的代码,不然就只能通过重构来解决。
4、旧系统的功能需求和交互体验上不能满足用户的使用,甚至会导致用户降低工作效率。
5、有些公司在刚成立,或者刚开始启动一个新项目的时候,业务和产品缺乏体系化的规划,为了尽快投入使用,追求快速、简单、高效的落地,经常在收到一个业务方需求的时候只是简单判断就开始设计并开发落地。
为了追求速度,没有在前期做好充足的准备,导致产品缺少足够的可扩展性,当用户需求在未来升级迭代的时候,现有的底层设计就没有办法跟上业务的发展,最终导致重构的出现。这也是许多小公司不断做大后无法避免的,毕竟互联网时代都是小步快跑,在一开始无法面面俱到。
总结
其实总结起来主要是旧系统的技术和框架阻碍了业务的发展,特别是影响到业务部门的销售额、产能和工作效率等的因素。所以这时候我们就需要通过重构,重新整理各个系统的功能和职责,用适合公司的新技术来搭建新的系统。通过新的系统来满足各用户的需求,让业务跑得更快,提升各个岗位的工作效率。
虽然我们已经知道重构是势在必行,但也不能老板一拍板就立马去干,我们需要做足充分的准备和整体的规划,这样重构之路才会走得更顺畅。
下一篇将会分享重构前的准备,大家敬请关注。