0

我有一个 Java 项目,我已经努力工作了大约 6 个月(3 个月的核心),它大约有 8000 行代码......但是我比 6 个月前好多了,而且我有多个课程充满了凌乱、无组织和无注释的代码。

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

我不知道我是否应该接受我的旧代码已经过时,然后继续,或者我应该回去,完全重写我的大部分程序,然后在未来有一条更简单的道路。或者也许有不同的解决方案?有什么想法吗?谢谢!我非常感谢您的帮助,因为目前我不知道是否应该继续进行,因为我可能只是在浪费时间。

4

4 回答 4

2

是的!

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

您还将(很可能)发现重写这 4k 行代码会导致代码行数少得多。或者,它会产生更可重用的代码。如果您多次使用某些东西,请尝试在重新编码时考虑 DRY(不要重复自己),使其成为函数或类。

此外,当您将来扩展/更改工作时,您将节省大量时间。

于 2013-09-26T04:34:41.410 回答
2

一定要去重写。自从你第一次开始以来,你仍在学习并且可能学到了很多东西。既然您对编程有了更多的了解,并且对软件需求有了更好的了解,您可能会做得更好。

话虽如此,这只是一个有趣的项目。在商业世界中,您必须考虑进行重写所需的时间,包括花费的金钱和浪费的时间和金钱,而不是添加新功能等,并将其与试图维护旧系统以保持旧系统所浪费的金钱数量进行比较它运行。只有在总体上进行重写更便宜的情况下,大多数企业才会这样做。

于 2013-09-26T04:36:41.380 回答
2

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

玩得开心!

于 2013-09-26T04:42:38.957 回答
1

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

问你自己:

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

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

在现实世界中证明非常有用的一个很好的练习是:我可以优化现有代码而不重写它吗?如果您要进行专业编程,这是一种非常重要的技能。

于 2013-09-26T04:38:50.457 回答