就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。
9年前关闭。
我被要求进行代码审查并报告向我们的一个新产品添加新功能的可行性,我直到现在还没有亲自参与过。我知道挑剔别人的代码很容易,但我会说它的状态很糟糕(同时尽量保持客观)。我的代码审查中的一些亮点:
QueueUserWorkItem
和线程通常被大量使用,线程池委托(delegate)具有无信息名称,例如 PoolStart
和 PoolStart2
.线程之间也缺乏适当的同步,特别是访问 UI 线程以外的线程上的 UI 对象。 Const
的和 Enum
's 在代码中定义,但大部分代码依赖于文字值。 MessageBox.Show
出现异常时显示错误信息,大部分吞下原来的异常。这当然会使在尝试重构之前开始编写单元测试以验证程序的功能变得更加复杂。 我只是触及了表面,但我的问题很简单:花时间重构现有代码库,一次只关注一个问题,还是考虑从头开始重写整个事情更有意义?
编辑 :澄清一下,我们确实有项目的原始要求,这就是为什么重新开始可能是一种选择。表达我的问题的另一种方式是:代码是否可以达到这样的程度,即维护它的成本会变得大于丢弃它并重新开始的成本?
最佳答案
在没有任何冒犯的情况下,从头开始重写代码库的决定是新手软件开发人员经常犯的严重管理错误。
有许多缺点需要警惕。
无论您最终是否从头开始重写,现在开始重构阶段都是真正坐下来理解问题的好方法,这样如果真正需要,重写就会更顺利,同时让现有代码库看起来更真实真正看看是否需要重写。
关于refactoring - 什么时候(如果有的话)废弃生产代码并重新开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/144734/