我最近得到了参与一个项目,一个基于网络游戏使用一个引擎编写PHP.游戏工作的现,但是可能更强劲,并有一些更多的功能和代码是旧相当丑恶的。

这个问题与这个代码(和多PHP code总的来说,我怀疑)是,它已经发展到哪里并不是非常漂亮的结构,有很多几乎完全相同的切割/粘贴条码,并使得大量使用全局甚至在功能参与。没有一个单元测试的任何地方,当然,和代码是硬盘编码,使用特定数据库以及依赖于$_REQUEST串从网页的电话码。

做正确的事会被拉出来的碎片的代码子的功能,他们整洁起来,并添加一些单元的测试,以确保它继续工作,增加了一些模拟对象。然而,这样做完全由一方面是繁琐且容易出错和我想知道你怎么做这个-还有一个IDE或工具,可以帮助,例如?我想有一个工具,可以帮助产生一种功能定义的代码,表明哪些变量,应参数,通过价值或基准,自动添加$this->文献,等等。

是这个要求太过分,或是有一个很好的解决方案吗?

谢谢!

有帮助吗?

解决方案

艾伦,我从来没有见过一个重构的工具,强大。甚至蚀refactorisation Java不是这个功能完成。然而,有一些常见的提示,重构。我通常应用"重构"在两个步骤。

1.把事情分开。 我提取数据库和模型相关的材料和提取它们远离主要的代码。一些目的代表会有所帮助。检查 活动记录 对于任何模式 奥姆 的工作。HTML码可以采取远离主要代码和移动模板文件。检查出很好的模板发动机的强力支持为查的逻辑处理 智者.

2.把东西放到视的框架。 是一个稳健的架构,适合网络应用程序非常好。使用一个PHP框架,绑松PHP文件进控制的方法。框架,使易于管理的网址,HTTP请求,通过的参数,管理登录的信息和通常提供的一些访问控制机制。

但最重要的是:不要打破东西无法修复。它的重构,不会重建项目;-)

其他提示

这篇文章真的很突出的危险的重构/开发老丑的代码:

http://www.1729.com/blog/EconomicsOfTestingUglyCode.html

我的做法一般是解决一个小问题的时间,开始隐瞒的许多旧的代码隐藏的一个接口,它可以加以处理"后面的"在不影响任何新的编码。这样任何事我写的可精心设计并有一个牢固的结构,但是我不必浪费太多时间试图进行重构,然后测试周/月/年价值的糟糕代码。

没有工具是要采取臭码,并以某种方式使它好了。短语"背对式"是一个相当可怕的前景对于一个成熟的项目,但是裸着我...

我建议你将它移到一个体面的视的框架。在这样做时,它可能不是一个坏时间来做的结构改写,以便所有课程的优化(一些东西,很少发生自然与不断变化的码)。它将需要很长时间,并且会有疼痛的时候事情不如预期。

这是一个大的步骤,但是这时会发生什么代码左腐烂。

你其它的选择:

  1. 做了部分重组,其中所有新的代码如下一套制度和老码是缓慢重建。
  2. 刚修好你的错误和不结构调整。

我感觉到你的痛苦。然而,我从来没听说过这样的一个工具,至少不PHP.

我不认为语言甚至是结构性的,足以允许任何一种半自动重构。反正我不知道的任何应用程序,能做到这一点,但是好的一边-这样做的所有手会让你非常熟悉的来源,它可能会帮助你你知道你周围有很多比你更会与自动化工具。

我是谷歌上搜索这件事,并找到一个有趣的博客,通过一个客户的Accurev.

http://blog.accurev.com/2008/09/17/dr-strangecode-or-how-i-learned-to-stop-worrying-and-love-old-code/

有正确的版本控制工具在你的"工具箱"不能伤害。

以我的经验一个完全重写经济得多,在这种情况。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top