Php 清洁代码:全新开始vs硬核清洁

Php 清洁代码:全新开始vs硬核清洁,php,codeigniter,Php,Codeigniter,所以我得到了一笔预算来清理从另一个程序员那里继承的代码。代码状态非常糟糕,有很多文件没有被使用,有很多函数没有被使用。它实际上看起来像线性规划,而不是面向对象的。我的问题是我是否应该这样做 a) 清理代码,重新构造代码,并尝试删除所有未使用的资源 b) 从一个新的框架开始(它使用codeigniter),复制运行所需的文件 我喜欢选项b,因为它让我想起了百思买的一台新笔记本电脑。我可以花时间删除所有臃肿的软件,或者做一次彻底的清理,从头开始创建系统,我总是这样做。唯一的问题是,这一次,除了创建一

所以我得到了一笔预算来清理从另一个程序员那里继承的代码。代码状态非常糟糕,有很多文件没有被使用,有很多函数没有被使用。它实际上看起来像线性规划,而不是面向对象的。我的问题是我是否应该这样做

a) 清理代码,重新构造代码,并尝试删除所有未使用的资源 b) 从一个新的框架开始(它使用codeigniter),复制运行所需的文件

我喜欢选项b,因为它让我想起了百思买的一台新笔记本电脑。我可以花时间删除所有臃肿的软件,或者做一次彻底的清理,从头开始创建系统,我总是这样做。唯一的问题是,这一次,除了创建一个新的系统外,还涉及到很多内容。以下是优点和缺点:

赞成的意见
  • 清洁系统,易于维护
  • 不需要到处搜索未使用的文件
  • 更容易跟踪我所做的事情
欺骗
  • 很多东西都会破裂
  • 可能会丢失所需的文件
  • 可能需要更长时间
你觉得怎么样?你能告诉我你的优点和缺点吗?在这种情况下你会怎么做

更新
很多人说我缺少一个重要的部分,预算(时间和金钱)。我们确实有一个不错的预算,但我的项目经理愿意去检查,如果它能确保一个更坚实的系统,更快的周转时间的新功能。我很难量化预算,因为你们还并没有看到代码,所以给时间并没有帮助,这就是为什么我并没有说任何关于预算的事情。我想从你的角度来看,考虑这是一个可以兼顾两种解决方案的预算。

< P>清理别人的代码可能是一场噩梦。如果你真的可以选择并且利益相关者同意,我强烈建议你重新开始


去年我有过类似的经历,到目前为止,该软件仍然处于非常糟糕的状态,几乎不可能跟踪我们继承代码的程序员所犯的每一个错误,也不可能花费大量时间来支持隐藏的bug和其他东西。

清理别人的代码可能是一场噩梦。如果你真的可以选择并且利益相关者同意,我强烈建议你重新开始


我去年有过类似的经历,到目前为止,软件的状态仍然很差,我们几乎不可能跟踪我们从中继承代码的程序员犯下的每一个错误,也不可能花费大量时间来支持隐藏的bug和其他东西。

我想这在某种程度上取决于您的时间限制以及您对项目的了解程度

我刚刚完成了一个数学专业研究生编写的一些代码的重组。聪明的家伙,但他不是程序员,就像你说的,代码是非常线性的。长话短说,我重写了大约90%的代码,花了比我希望的更多的时间用他的代码作为参考,从零开始对我来说会更快。不仅如此,如果我计划进行尽可能多的更改,我会在重组过程中投入更多的思考。好的一面是,我现在非常了解该项目中的所有代码和概念

另一方面,如果您不打算进行很多更改或维护代码,那么可能不值得这么麻烦。可以这么说,把它放到一个可用的状态,然后塞进地毯下面


我的2美分…

我想这在某种程度上取决于你的时间限制,以及你对项目的了解程度

我刚刚完成了一个数学专业研究生编写的一些代码的重组。聪明的家伙,但他不是程序员,就像你说的,代码是非常线性的。长话短说,我重写了大约90%的代码,花了比我希望的更多的时间用他的代码作为参考,从零开始对我来说会更快。不仅如此,如果我计划进行尽可能多的更改,我会在重组过程中投入更多的思考。好的一面是,我现在非常了解该项目中的所有代码和概念

另一方面,如果您不打算进行很多更改或维护代码,那么可能不值得这么麻烦。可以这么说,把它放到一个可用的状态,然后塞进地毯下面


我的2美分…

混合方法通常效果更好。留着金块,把剩下的扔了。即使在最糟糕的项目中,也很可能存在一些真正有效的代码。同样,那些重写起来很痛苦并且已经很好地工作的东西,你可以稍微整理一下


需要一点判断来决定保留什么,但你可以从这两种方式中获得最佳效果。

通常混合方法效果更好。留着金块,把剩下的扔了。即使在最糟糕的项目中,也很可能存在一些真正有效的代码。同样,那些重写起来很痛苦并且已经很好地工作的东西,你可以稍微整理一下


这需要一点判断来决定保留什么,但你可以从这两种方式中获得最好的效果。

这个问题让我想起了我不久前读过的Joel的文章

最严重的战略错误 任何软件公司都可以: 他们决定重写源代码 划痕阅读代码比阅读更难 去写吧


这个问题让我想起了我不久前读过的乔尔的文章

最严重的战略错误 任何软件公司都可以: 他们决定重写源代码 划痕阅读代码比阅读更难 去写吧


技术解决方案取决于一组资源:时间、知识库和预算是最重要的。你没有提到这些。(tipp)技术解决方案依赖于一组资源:时间,知识