Есть ли инструмент, который будет смотреть на мой Java-код и предлагать хорошую структуру пакета? - PullRequest
3 голосов
/ 28 сентября 2008

У меня большая кодовая база, и я хотел бы реорганизовать структуру пакета, чтобы классы, которые интенсивно взаимодействуют, помещались в один и тот же пакет.

Похоже, что должна быть возможность создать инструмент, который бы смотрел на взаимодействия между классами, а затем группировать те классы, которые интенсивно взаимодействуют. Эти группы могут затем предложить хорошую иерархию для пакетов.

Существует ли такой инструмент? (с открытым исходным кодом является предпочтительным).

Ответы [ 6 ]

4 голосов
/ 28 сентября 2008

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

http://www.headwaysoftware.com/products/structure101/index.php

1 голос
/ 28 сентября 2008

Structure Analysis for Java - это плагин Eclipse, который выполняет некоторый анализ зависимостей:

http://stan4j.com/

1 голос
/ 28 сентября 2008

Вы можете попробовать Lattix, который использует Матрицу структуры зависимостей, чтобы показать вам зависимости и скрытую структуру внутри вашего кода как на уровне класса, так и на уровне пакета. Я нашел это полезным для такого рода вещей в прошлом.

http://www.lattix.com/

0 голосов
/ 28 сентября 2008

Что-то, что, по крайней мере, может сказать вам, если вы находитесь на правильном пути, это JDepend . Он поощряет зависимость от сильно абстрактных пакетов (которые, вероятно, будут меняться меньше, чем пакеты с менее абстрактным кодом) и будет предупреждать вас, когда ваши пакеты имеют циклические зависимости. Я считаю, что это хорошая проверка реальности.

Существует множество способов использовать его, в том числе как Eclipse-плагин .

0 голосов
/ 28 сентября 2008

В IntelliJ есть несколько инструментов с матричной кодировкой в ​​этом направлении.

0 голосов
/ 28 сентября 2008

Попробуйте немного пасты (см. http://freshmeat.net/projects/pastatool/)

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