是否值得重写整个程序?

时间:2013-09-26 04:31:04

标签: java

我有一个Java项目我一直在努力工作大约6个月(3个月硬核)并且大约有8000行代码...但是我比6个月前好多了,而且我有多个类,包含杂乱,无组织和未注释的代码。

虽然我的新代码要好得多,但在查看我的一些旧代码时,我经常会发现自己丢失了。您是否认为值得花时间重写4000-5000 ish代码行,我认为编写得不好?我没有太多时间工作,每天最多只有3个小时。

我不知道我是否应该接受我的旧代码是旧的,只是继续,或者如果我应该回去,完全重写我的大部分程序,然后在将来有一个更容易的路径。或者可能有不同的解决方案?有什么想法吗?谢谢!我真的很感激帮助,因为目前我不知道我是否应该知道我可能只是在浪费时间。

4 个答案:

答案 0 :(得分:2)

是!

一直处于相同的位置(不止一次悲伤)我可以说这是值得的 - 如果你在6个月的时间内回到你的一个项目 - 你会看到那些旧代码并想知道是什么你试图做的那件事。此外,您可能希望在某些时候将您的工作示例发送给潜在的雇主,如果他们看到的代码是草率的 - 它看起来不太好。更糟糕的是,如果他们查看代码并看到两种截然不同的样式(草率与整洁),他们会认为你抄袭了代码。

您也(很可能)发现重写那些4k行代码会导致代码行数减少。或者,它导致代码更加可重用。如果您不止一次使用某些东西,请将其重新编写(不要重复自己),将其作为函数或类。

此外,当您来扩展/改变您的工作时,将来会节省很多时间。

答案 1 :(得分:2)

当然要重写。你还在学习,自从你刚开始学习以来可能学到了很多。现在您已经了解了有关编程的更多信息,并且对软件需求有了更好的了解,您可能会更好。

话虽如此,这只是一个有趣的项目。在商业世界中,你必须考虑花费时间来重写所花费的时间和浪费的时间和金钱,而不是添加新功能等,并将其与浪费的金额进行比较,试图保持旧系统保持不变它在运行。只有当整体重写更便宜时,大多数企业都会为此而努力。

答案 2 :(得分:2)

正如其他海报所提到的那样,这可能是非常有益的。您应该借此机会为所有新代码编写 JUnit测试(如果您还没有这样做),因为这将帮助您编写封装良好且解耦的代码。两本非常好的书可供参考:Martin Fowler的重构(http://martinfowler.com/books/refactoring.html),以及Michael Feathers的有效使用遗产代码(http://www.amazon.ca/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052)。

玩得开心!

答案 3 :(得分:1)

这是许多开发人员提出的一个常见问题,它会带来其他更重要的问题,帮助您成为更好的程序员。

问问自己:

  • 我在代码中使用javadocs吗?
  • 我经常重复代码吗?
  • 我是否使用已建立的模式并坚持使用它们进行整个项目?

我问的原因是,即使您重写代码,这些问题的答案也会影响您新代码的可读性。

在现实世界中证明非常有用的一个好的练习是:我可以优化现有代码而不重写它吗?如果你有专业的计划,这是一种非常类型的技能。