如何理解开源项目/库?

时间:2010-07-29 18:21:15

标签: java eclipse spring struts2 ibatis

我们在项目中使用的开源项目/ API /库很少(Spring, Struts, iBatis等),我想了解他们的设计以及它们如何在内部工作

理解这些项目的最佳方法是什么?请注意,我已经在我的项目中使用这些库。我知道这些库的输入输出交互/配置。我不明白的是这些API /库如何在内部工作。

我面临的问题是:

  1. 查找库的入口类。有什么办法可以让我知道库的入门类 - 这是一个踢完整个API的东西吗?
  2. 在Eclipse中使用的工具/插件,用于概述库的设计。浏览库的每个类,都是一项非常艰巨的任务。是否有任何您想推荐的工具可以在Eclipse中生成API的类图。
  3. 提前致谢!!


    UPDATE :我需要一些关于eclipse插件的输入,这些输入可以帮助我获取库的概述/类图

5 个答案:

答案 0 :(得分:7)

我总是使用相同的策略:我从不试图“理解”代码库作为一个整体,我通常会尝试遵循请求流程。我阅读了足够的文档来确定使用该应用程序的必要条件,并且我读了那个代码(保留IDE中加载的所有源代码)。

例如,在struts中,您将在web.xml中安装servlet过滤器。开始阅读过滤器并按照单个请求通过堆栈的路径。

同样对于spring,有两个主要入口点,过滤器和“getBean”,这两个入口点都在文档的早期提到。阅读这两个。

对于这两种情况,你会发现一两个类很快就代表了框架的“核心”。阅读那些非常好,并让实际用例&需要推动你的进一步探索。

通过尝试查找所有部分来接近“理解”开源库(或任何其他代码库)通常不是处理这些事情的非常好的方式,它通常只会导致无处不在,因为很多这些东西包含太多代码。当遵循请求流程时,我发现制作图表也会让人非常分心,它往往会引起注意力/注意力远离理解(并且由于我的理解迅速增加,因此大多数图表甚至在到达打印机之前就已经过时了)。

答案 1 :(得分:4)

很好的问题!!!,我所做的,特别是在Spring的情况下,除了咨询文档及其API之外,还要将项目的源代码附加到Eclipse上的项目中,这样我就能够浏览源代码,而不仅仅是API。它特别适用于Spring-Security项目,在我检查源代码之前,有些概念我无法理解。

这是使用开源库的优势之一。

问候。

答案 2 :(得分:1)

Structure101(http://www.headwaysoftware.com/products/structure101/index.php)和Lattix(http://www.lattix.com/)等工具可让您分析代码并生成架构图/依赖矩阵。

这不完全是类图 - 主要关注分层。所以入口点通常是最顶层。

但话说回来,正如我上面指出的那样,你会注意到一些lib只是一团糟,而且这些工具不够用。

参见S101在线演示:http://www.structure101.com/java/ 例如,这是Sonar项目架构:http://www.structure101.com/java/tracker/sonar/1.11.1/arch.html

答案 3 :(得分:0)

这三个人最好的选择是查阅官方文档(确保您正在查看您正在使用的版本)或获取有关该技术的书籍。

答案 4 :(得分:0)

大多数API没有带main方法的类;它们在服务器本身调用的Web服务器中运行。除非他们作为自己的服务器运行,否则他们将没有主要方法。