[英]How to understand Open Source projects/libraries?
我們在項目中使用的開源項目/ API /庫很少( Spring, Struts, iBatis
等),我想了解它們的設計以及它們如何在內部工作。
了解這些項目的最佳方法是什么? 請注意,我已經在我的項目中使用這些庫。 我知道這些庫的輸入輸出交互/配置。 我不明白的是這些API /庫如何在內部工作。
我面臨的問題是:
提前致謝!!
更新 :我需要一些關於eclipse插件的輸入,它可以幫助我獲得庫的概述/類圖
我總是使用相同的策略:我從不試圖“理解”代碼庫作為一個整體,我通常會嘗試遵循請求流程。 我閱讀了足夠多的文檔來確定使用該應用程序的必要條件,並且我閱讀了該代碼(在IDE中加載所有源代碼)。
例如,在struts中,您將在web.xml中安裝servlet過濾器。 開始閱讀過濾器並按照單個請求通過堆棧的路徑。
同樣對於spring,有兩個主要入口點,過濾器和“getBean”,兩者都在文檔的早期提到。 閱讀這兩個。
對於這兩種情況,您將找到一個或兩個快速實現框架“核心”的類。 仔細閱讀這些內容,讓實際使用案例和需求推動您的進一步探索。
通過嘗試查找所有部分來接近“理解”開源庫(或任何其他代碼庫)通常不是處理這些事情的一種非常好的方式,它通常只會導致無處,因為很多這些事情包含太多代碼。 當遵循請求流程時,我發現制作圖表也會讓人非常分心,它往往會引起注意力/注意力遠離理解(並且由於我的理解迅速增加,因此大多數圖表甚至在到達打印機之前就已經過時了)。
好問題!!!,我所做的,特別是在Spring的情況下,除了咨詢文檔和他們的API之外,將項目的源代碼附加到我在Eclipse上的項目,這樣我就可以瀏覽源代碼,而不僅僅是API。 它特別適用於Spring-Security項目,在我檢查源代碼之前,有些概念我無法理解。
這是使用開源庫的優勢之一。
問候。
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
這三個人最好的選擇是查閱官方文檔(確保您正在查看您正在使用的版本)或獲取有關該技術的書籍。
大多數API沒有帶main方法的類; 它們在服務器本身調用的Web服務器中運行。 除非它們作為自己的服務器運行,否則它們將沒有主要方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.