Joh*_*ing 12 refactoring rewrite
我确信你们都已经在那里,你们开展了一个项目,那里有一个蹩脚的旧代码库,几乎不符合目的,你必须决定从头开始重新编写或修复已经存在的内容.
传统智慧倾向于暗示你不应该尝试从头开始重写,因为失败的风险非常高.那么你在面对这个问题时做了什么,你是如何做出决定的呢?结果如何呢?
nsa*_*ers 10
每次使用它时都要稍微清理一下代码.如果还没有,请设置单元测试框架.所有新代码都应该编写测试.您因错误而修复的任何旧代码,也尝试在测试中滑动.
随着清理工作的进展,您将能够将越来越多的讨厌代码扫描到封装的容器中.然后你可以在将来逐一挑选这些.
像javadoc或doxygen这样的工具(如果尚未使用)也可以帮助改进代码文档和可理解性.
反对完全重写的论据非常强烈.在原始项目的时间范围内编码的那些"小错误"和行为将再次潜入其中.
Jos*_*ons 10
这真的取决于它有多糟糕.
如果它是一个小系统,并且你完全理解它,那么重写并不疯狂.
另一方面,如果它是一个巨大的遗留怪物,拥有一千万行无证的神秘代码,那么你真的很难完全重写.
需要考虑的要点:
我会毫不犹豫地为大型系统承担一个巨大的重写项目,而无法一次发布一个新版本.