理解大型Java代码库

理解大型Java代码库,java,Java,有没有关于理解大型java代码库的参考资料。例如,图持久性实现。如果文档很少/缺失,您会采取什么样的方法?有关于这方面的书吗?我知道一个叫做.NET中的Brownfield应用程序开发 也许是类似的问题?解决此类问题的方法有很多种,大多数情况下,这将取决于您个人的偏好、编码和解决问题的方式。。。例如: 如果可用,从任何文档/TDD开始 使用一些设计/UML工具(如EA Architect)生成UML/类图以理解类结构 如果项目有一些测试用例,那么从执行和理解其背后的代码开始 尝试运行应用程序,您

有没有关于理解大型java代码库的参考资料。例如,图持久性实现。如果文档很少/缺失,您会采取什么样的方法?有关于这方面的书吗?我知道一个叫做.NET中的Brownfield应用程序开发


也许是类似的问题?

解决此类问题的方法有很多种,大多数情况下,这将取决于您个人的偏好、编码和解决问题的方式。。。例如:

  • 如果可用,从任何文档/TDD开始
  • 使用一些设计/UML工具(如EA Architect)生成UML/类图以理解类结构
  • 如果项目有一些测试用例,那么从执行和理解其背后的代码开始
  • 尝试运行应用程序,您可以设置一些调试点,并尝试了解流程

  • 一天结束时,这一切都取决于项目、代码的文档化程度以及您解决问题的个人风格。

    这一切都取决于项目的组织方式。我脑子里闪过一些想法:

  • 查找核心/领域知识:
    • 查看领域知识是否是孤立的,并从理解它开始
    • 查看如何将代码拆分为项目、模块(例如JAR)和包。如果至少有一些组织,寻找“核心”,并从那里开始学习
    • 寻找这些知识的其他痕迹:图表、测试、文档、样本
  • 请尝试运行应用程序。从入口点向下分析发生了什么
  • 学习基本架构。寻找熟悉的领域(你知道的框架和解决方案),看看它是如何使用的

  • 我的建议是:

  • 获取代码构建。如果没有构建脚本,请编写一个
  • 让代码运行
  • 如果没有测试,则开始从系统中提取位来编写测试。您不是在真正测试,而是在了解系统的行为
  • 使用现代IDE(Eclipse、Netbeans等)开始跟踪方法和类的声明和引用
  • 祝你好运


    Ian.

    如果您想跟踪Java代码的执行情况以了解控制流,您可以使用名为的工具

    注意:InTrace是一个免费的开源工具,我已经写过了