怎样处理遗留代码

本文是翻译,版权归原作者所有


介绍

想象一下,你未来的工作是处理一堆遗留代码【注1】,它几经易手。你会发现好的或糟糕的代码、不同的代码风格、或多或少没有被单元测试覆盖到。到处都能嗅到代码的味道,或许还有严重影响效率、灵活性、易测试等等严重问题。然后,你心里可能产生了大量的优化代码的想法!好吧……不要碰它们

为什么要保留现状?

请考虑以下因素:

怎么办?

这是一个开放式的问题,取决于你面对的实际代码情况。我给出对我管用的方法:

按照这些方法,你就会完成基于遗留代码的核心程序,它们经过了时间的检验,当然还有新的、灵活的、易辨认的、测试过的构建在旧代码之上的新代码。不同的“变色龙”方法表现为程序员把新、旧代码混合在一处以致于分不清楚。坏处是强迫程序员进一步扩大了不可能测试的揉在一起的功能。时间被重置,结果无法保证,代码进一步僵硬得难以辨认。这带来了过多的控制流语句,给将来的改进工作不会带来有用的价值。

“重构“带来了新的bug,它可以使代码更好,也存在导致代码变得散乱、bug丛生的风险,以及被这种重构终结的可预期时间表每一天都在流失。

原文地址:http://www.codeproject.com/Tips/702688/How-to-work-with-legacy-code 注1:遗留代码:http://book.douban.com/subject/1428943/ 注2:http://blog.csdn.net/moon1128/article/details/243968

译文:怎样处理遗留代码 》| 腊八粥