我正在研究一个java项目,我必须扩展(添加更多功能)。但我不知道在合并之前我应该如何学习现有的。 我应该遵循哪条具体路径? 我可以以某种方式运行它,以便我可以看到语句,程序的执行吗?
我很难理解它,谢谢。
答案 0 :(得分:3)
这是另一种hacky方法,但我发现在过去无法附加调试器时很有用。如果您正在查看一段代码,但很难确定谁在调用它,您可以抛出一个新的运行时异常,捕获它并打印堆栈跟踪。
try { throw new RuntimeException("who is calling me"); } catch (RuntimeException e) { e.printStackTrace(); }
答案 1 :(得分:1)
您可以随时在调试器/您选择的IDE中启动它,并随心所欲地执行它,尽管最好找一个更熟悉源的人来为您提供概述,或者查找文档在哪里开始。
答案 2 :(得分:1)
选择一项您了解其要求的功能。找到该功能的入口点,然后按照该功能的代码进行操作。它应该让您很好地理解架构的工作原理。
答案 3 :(得分:1)
这是关于Stack Overflow的一个经常出现的问题。周围已经有很好的答案:
此外,本书可能有所帮助:Working Effectively with Legacy Code
“耐心和毅力征服一切。” - 拉尔夫沃尔多爱默生
答案 4 :(得分:1)
与已编写的代码集成可能非常困难。根据我的经验,我得到的关于已编写代码的一些最佳线索来自方法签名(函数输入到其输出的映射)。方法的签名可以为您提供有关程序的大量提示,即特定方法在大型程序的上下文中的位置,特别是该方式的位置。通常,方法签名与描述性方法名称相结合可以为您提供足够的信息,尤其是在类似Java的类型语言中。
虽然我不建议逐行运行代码并查看更改(因为这通常相当于大量的工作)但是对于非常丑陋但重要的代码有时候是必要的(我确定在使用DDD之前完成它)对于C程序)。在这种情况下,快速谷歌搜索显示http://www.debugtools.com/,一个图形java调试器,可以做到这一点;似乎还有与Java一起使用的DDD版本。
答案 5 :(得分:0)
我建议您先从调试开始,这样您就可以逐步完成该程序。
答案 6 :(得分:0)
文档:
如果您有文档,那将会很有帮助。但它可能是一个陷阱,因为许多文档已经过时,它们可能会误导你。
修正:
您可以从错误修正或新功能植入开始。小范围开始工作,这将是简单的工作。在错误修复期间,您可以越来越多地理解代码。
答案 7 :(得分:0)
以下是您使用Eclipse或类似产品