日期:
来源:郭霖收集编辑:
说到「重构」这个话题,或许有些朋友遇到过这样的经历,公司早年间上线的项目系统,因一直没专人在演进过程中为代码质量负责,导致现在代码越来越混乱,逐渐堆积成“屎山”,目前的维护成本已远高于重新开发一套新系统,想重构也没有合适的人力物力以及时机,只能继续凑合用。说实在的,这确实不只是一家公司会遇到的问题,而造成这种情况的原因大概率有以下几点:可以看出,最好的解决办法就是不要堆积遗留问题。对此,业界现有的比较“成熟”的解决思路是:通过持续不断地重构将代码中的“坏味道”清除掉。可惜说起来容易,做起来却很难,要克服遗留系统重构往往有三大阻力:首要的就是怕出错,不知道怎样保障重构的安全性和效率,其次,很多遗留系统规模及业务复杂度太高,开发人员又缺乏改造的方法及经验,根本不知从何入手;而且如果修改只是单单停留在代码层面上,很难彻底解决问题,从而提高研发效率和提高产品质量。有一篇文章讲得倒是挺不错的,一针见血地指出了三个关键点:自动化、系统化及工程化。简单来讲,就是要先通过自动化重构提高开发效率,再通过系统的流程方法,逐一击破,最后通过工程化管理,持续演进,如下图所示。分享人是 Thoughtworks 资深咨询师、也是中国区 DTO 团队敏捷技术教练「黄俊彬」。最近极客时间还特意邀请他做了一个重构系统专栏——《大型 Android 系统重构实战》,提前看了下导读,里面不但有详细的关于遗留系统重构三大关键的指南讲解,他还特意选择了一个在实际工作可能会遇到的 App 项目,直接带你实操改造,这点还挺难得的。