在我目前的工作地点,我们有一些令人震惊的代码被吹捧为下一代框架.
事实上,这个观点中只有一个人就是那个写了大部分内容的人.该部门的其余部分给人的印象是编码错误,调试的皮塔饼和一般的naff.
写这篇文章的人对管理层有着相当有影响力的地位,所以他们就在营地的那一边.
我们已向管理层强调(真实)关注,但显然他们不愿意将更多时间投入到不直接有助于提高利润的项目中.
在此框架上部署了多个应用程序,因此任何重构都需要包含这些应用程序.
整个事情是如此交织在一起,我们不能撕掉特定类的实现并以这种方式重写它,所以即使对核心api进行简单的更改也意味着一个大项目.
然而,它确实有3年的实时部署和许多错误修复,角落案例和边界条件迎合.
我们是否重写部分并试图重构,因为它将是几个大型项目,随着时间的推移重构,可能需要另外3年时间才能完成它或我们只是在现有的基础上重写我们的特定要求框架?
重写一些东西几乎是一个坏主意 – 你花了几个月的时间工作,直到你完成之后没有任何东西可以显示.这假设你不会成为第二系统效应的牺牲品,而你实际上已经完成了.
重构几乎肯定是正确的答案.我没有任何重构PHP的经验(我做C和C#),所以我不能提供任何具体的建议.你必须继续婴儿步骤.
>首先,确定最容易冒犯的代码部分.对我来说,在C中,这是全局变量.
>其次,进行小型重构以一次删除一个问题.为了避免破坏该代码的旧客户端,您可能需要设置一个外观.您可以在旧代码上添加新外观,也可以在新代码上添加旧外观.
>第三,也是最重要的,除非你真的很自信,否则请确保你已经为你要重构的代码进行了一系列可靠的单元测试.
但是:不要放弃所有内容来重写代码.逐渐重构.它会让你慢下来,但随着你的进展,你仍然会提供价值.
请参阅this article,它将帮助您向管理层解释技术债务.它也解释了为什么他们似乎并不关心.