作为开发人员,我在一整天的生活中遇到的最令人不快(也是最不常见的)情况之一就是我必须修复错误或在设计糟糕的代码中添加功能.现在作为一个优秀的工匠,我想让代码保持比我发现的更好的状态.如果我不重构设计,通常无法实现新功能.嗯 - 他们可以,但这会使代码更糟糕.
不幸的是,这正是我经常遇到的困难.我觉得如果有一件事情很难,那就是重构坏代码,尤其是在你有最后期限的情况下.触及或多或少工作的糟糕而复杂的代码是可怕的.因此,当我在代码中修改新功能而不修改现有代码时,我会引入更多的混乱.
现在我的问题是我如何学会应对不良代码?我怎样才能学会理解巨大的代码库,然后在不破坏已经工作且不超过截止日期的情况下重构其中的部分代码?你有没有可以推荐的文献?你有什么一般的提示吗?
ale*_*rus 24
一般提示:
if (it is working)
Do (not touch it);
else
{
Make (as few modifications as possible)
Or (it will stop working at all);
}
Run Code Online (Sandbox Code Playgroud)
这是几代人的经历.
Ode*_*ded 22
Michael Feathers完全写了一本关于这个主题的好书.
另一本伟大的着作是Martin Fowler,Kent Beck和其他人:
当我不得不处理为坏代码添加功能时,我通常的做法是:
这给你至少一些信心,你没有打破一切.至于如何学习应对不良代码,我想这只是关于经验.
好吧,如果您要在项目中重构大量代码,我建议您使用一些不错的版本控制,这样您就可以轻松分支和回退。鉴于,这可能是一扇敞开的门,但在我看来至关重要。
此外,在开始复杂的面向对象之前,请尝试将方法和函数分解为更小的方法和函数。确保每个函数具有一定程度的原子性,这使得代码更容易维护、阅读和管理。这都是关于小东西的,将其分解为逻辑操作单元,我正在对 1k 行方法进行重构操作。它可以做各种奇特的事情。我的第一个目标是从更小的部分中获得尽可能多的东西,完成后我将开始考虑更好的面向对象设计,这更容易,因为我对事物有了更好的掌握。
阿司匹林也有很好的效果。