如何理解开源项目/库?

2022-09-04 21:16:34

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

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

我面临的问题是:

  1. 查找库的条目类。有没有办法知道库的入门级 - 这正在踢整个API?
  2. 在 Eclipse 中使用的工具/插件,用于获取库设计的概述。浏览图书馆的每一个类,可能是一项非常艰巨的任务。有没有你想推荐的工具可以在Eclipse中生成API的类图。

提前致谢!!


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


答案 1

我总是使用相同的策略:我从不尝试将代码库作为一个整体来“理解”,我通常尝试遵循请求流。我阅读了足够的文档来确定使用应用程序所需的内容,并阅读了代码(将所有源代码加载到IDE中)。

例如,在支柱中,您将在web.xml中安装servlet过滤器。开始读取筛选器,并遵循单个请求通过堆栈的路径。

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

对于这两种情况,您都会很快找到一两个表示框架“核心”的类。仔细阅读这些内容,让实际的用例和需求推动您进一步的探索。

通过尝试找到所有部分来“理解”开源库(或任何其他代码库)通常不是处理这些事情的好方法,它通常不会有任何结果,因为很多这些东西包含太多的代码。当遵循请求流程时,我发现制作图表也可能非常分散注意力,它往往会将注意力/焦点从理解上移开(并且由于我的理解迅速增加,其中大多数甚至在到达打印机之前就已经过时了)。


答案 2

很好的问题!!!,我所做的,特别是在Spring的情况下,除了查阅文档和他们的API之外,是将项目的源代码附加到我在Eclipse上的项目,这样我就可以浏览源代码,而不仅仅是API。它非常有用,特别是在Spring-Security项目的情况下,有一些概念在我检查源代码之前我无法理解。

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

问候。


推荐