如何理解自定义java框架

时间:2013-05-30 09:27:33

标签: java swing java-ee web-applications

我正在开发一个基于自定义swing的产品,它有自己的框架。该框架没有可用的文档。我想了解如何理解产品和框架的架构。

有成千上万的java文件,所以我感到困惑。需要你的帮助!

3 个答案:

答案 0 :(得分:2)

您可以使用Structure 101Degraph等工具来全面了解结构和重要类别(很多内容所依赖的内容)。

如果编码良好,包结构和名称会给你一些提示。

如果您想获得更详细的见解,我建议您识别由ui触发的内容,例如按钮监听器,可能是工作者,或者扩展JPanel / JForm等的东西。但是那里有一个断点,让调试器让你通过应用程序从UI通过业务逻辑到数据库并返回。

同样在版本控制系统上运行一些分析来找到非常稳定的东西,而不是最近发生了很大变化的东西可能会很有用。

答案 1 :(得分:1)

运行Javadoc - 即使没有注释,生成的文档也可以让您轻松浏览各个类之间的关系。

在类的名称中查找设计模式(例如,有类名为FooController或BarDao的类。)

这是一个框架还是一个正常运行的应用程序(你说它是一个框架,但只是确定,很难相信有人会用10K +类编写一个框架而不提供任何文档?!?!???)?如果它是一个正常运行的应用程序,请确定模型并尝试理解各个实体之间的关系。我经常发现,一旦你理解了数据模型,其他一切就会到位。

框架通常分为两类 - 一类为您提供您使用的代码(例如Spring)或您提供它所使用的代码的代码(例如Struts)。尝试并确定您正在查看哪一个。没有(有意义的)具体子类的抽象类的存在通常表示后者,这些类将是扩展点。我发现前者有点自由形式,可以单独使用,因此更难以掌握主要功能。例如,在Spring中,如果我们从JAR和包中剥离像“核心”这样的名称并烧掉文档,那么确定它主要是一个DI框架并且不是,例如,大量的实用工具 - 有点困难,直到你偶然发现BeanFactory并看到它(相当大)的类层次结构。

如果您有权访问源存储库,请查看一些早期的提交 - 这些提交可能是核心类。随着项目的成熟,提交将开始关注外围类。

如果这是一个正常运行的应用程序而不是纯框架,您可以始终使用调试器来逐步执行代码和事件机制,并使用它来识别核心类。

是否有配置文件?当我尝试学习新的软件(或手机或DVD播放器)时,我发现设置是发现功能的最快方式。配置文件将与此类似。

我希望其中一些有用。祝好运。

答案 2 :(得分:0)

查看(JUnit)测试用例。更好的是,如果有规格(如Spock),请检查这些。

这可能不存在。因此,如果您通过现有源代码,请写下以下内容:如果您必须维护代码,请在之前编写测试,并且花时间以获得良好的覆盖率扩展之前的现有行为。根据法律情况,我甚至会考虑批准您的测试用例的覆盖范围被接受。