Как понимать Open Source проекты / библиотеки? - PullRequest
13 голосов
/ 29 июля 2010

В нашем проекте мало проектов / API / библиотек с открытым исходным кодом (Spring, Struts, iBatis и т. Д.), И я хочу понять их дизайн и принципы их работы внутри .

Как лучше понять эти проекты?Обратите внимание, что я уже использую эти библиотеки в своем проекте.И я знаю взаимодействие / конфигурации ввода-вывода для этих библиотек.Я не понимаю, как эти API / библиотеки работают внутри.

Проблемы, с которыми я сталкиваюсь:

  1. Поиск класса записи библиотеки. Есть ли какой-нибудь способ узнать класс ввода для библиотеки - что-то, что поражает весь API?
  2. Инструменты / Плагины, которые можно использовать в Eclipse для получения общего представления о дизайне библиотеки. Прохождение всех классов библиотеки может быть очень сложной задачей.Есть ли какой-нибудь инструмент, который вы хотели бы порекомендовать, который может генерировать диаграммы классов API в Eclipse.

Заранее спасибо !!


UPDATE : Мне нужны входные данные для плагинов Eclipse, которые могут помочь мне получить обзор / диаграмму классов библиотеки

Ответы [ 5 ]

7 голосов
/ 01 августа 2010

Я всегда использую одну и ту же стратегию для этого: я никогда не пытаюсь «понять» кодовую базу в целом, и я обычно стараюсь следовать потоку запросов.Я прочитал достаточно документации, чтобы определить, что необходимо для использования приложения, и прочитал этот код (сохраняйте весь исходный код загруженным в вашей IDE).

Например, в стойках вы будете устанавливать фильтр сервлетов в web.xml.Начните читать фильтр и следуйте пути, по которому отдельный запрос проходит через ваш стек.

Аналогично для Spring, есть две основные точки входа, filter и "getBean", обе из которых упоминаются очень рано в документации,Прочитайте эти два.

Для обоих этих случаев вы найдете один или два класса, которые очень быстро представляют «ядро» фреймворка.Прочитайте их очень хорошо и позвольте фактическим случаям использования и потребностям вести ваше дальнейшее исследование.

Подход к «пониманию» библиотеки с открытым исходным кодом (или любой другой базы кода в этом отношении) путем попытки найти все части обычноне очень хороший способ приблизиться к этим вещам, это обычно просто ни к чему не приведет, потому что многие из этих вещей содержат слишком много кода.Следуя потоку запросов, которые я нахожу, создание диаграмм также может сильно отвлекать внимание, оно стремится отвлечь внимание / сосредоточиться от понимания (и, поскольку мое понимание быстро увеличивается, большинство из них устарели даже до того, как они достигли принтера).

4 голосов
/ 29 июля 2010

Хороший вопрос !!!, что я сделал, особенно в случае с Spring, кроме того, что обратился к Документации и их API, это прикрепил источники проекта к моему проекту на Eclipse, таким образом, я смог перемещаться по исходному коду, а не только по API. Это было очень полезно, особенно в случае проекта Spring-Security, были некоторые концепции, которые я просто не мог понять, пока не проверил исходный код.

Это одно из преимуществ использования библиотек с открытым исходным кодом.

Привет.

1 голос
/ 02 августа 2010

Такие инструменты, как Structure101 (http://www.headwaysoftware.com/products/structure101/index.php), и Lattix (http://www.lattix.com/)), позволяют анализировать код и создавать диаграммы архитектуры / матрицы зависимостей.

Это не совсем диаграмма классов - основной фокуснаходится на многоуровневом уровне. Таким образом, точка входа обычно является самым верхним слоем.

Но опять же, как я указывал выше, вы заметите, что некоторые библиотеки - просто беспорядок, и эти инструменты не будут достаточно полезны.

См. Онлайн-демонстрацию S101: http://www.structure101.com/java/ Это, например, архитектура проекта сонара: http://www.structure101.com/java/tracker/sonar/1.11.1/arch.html

0 голосов
/ 30 июля 2010

Большинство API не имеют класса с основным методом;они работают на веб-сервере, вызываемом самим сервером.Если они не работают в качестве собственного сервера, у них не будет основного метода.

0 голосов
/ 29 июля 2010

Лучшим вариантом для этих трех было бы обратиться к официальной документации (убедитесь, что вы просматриваете версию, которую вы используете) или получить книгу по технологии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...