Ich weiß, dass viele ähnliche Fragen zu SO gestellt wurden, aber ich konnte nichts voll befriedigendes finden - wahrscheinlich, weil meine Anforderung von jeder dieser Fragen etwas abweicht.
Ich habe eine gigantische Codebasis, die ich in kleinere Logikeinheiten unterteilen möchte. Um dies zu tun, muss ich alle verworrenen / zirkulären Abhängigkeiten finden und sie auflösen. Aufgrund der Größe der vorhandenen Spaghetti scheint die einzig mögliche Strategie darin zu bestehen, zu teilen und zu erobern, also muss ich das riesige Projekt zuerst in kleinere Stücke teilen oder einzelne Teile abziehen und die kleineren Stücke getrennt angehen.
Die meisten Tools, die ich dort finden kann, scheinen nur auf der Klassen- oder Paketebene zu funktionieren, aber sie scheinen das Konzept der Unterpakete nicht zu unterstützen. Zum Beispiel, wenn ich ein Root-Paket, 3 Pakete darunter und dann 5 Unterpakete unter jedem der 3 habe, dann werde ich 1 + 3 + 15 = 19 Pakete bekommen, was mir einen verrückten komplizierten Graphen geben wird. Nun hoffe ich, dass ich in der Lage bin, die Abhängigkeitsbeziehung zwischen den 3 Paketen der obersten Ebene zuerst zu analysieren (Anzahl der eingehenden / ausgehenden Pakete und welche Klassen diese Abhängigkeiten hervorruft), bereinige sie auf dieser Ebene, bevor ich in diese Top-Ebene eintauche Level-Pakete, um auf der nächsten Ebene zu arbeiten.
Nun habe ich Struktur 101 für diesen Zweck verwendet, und es funktioniert gut, aber wenn der Test abläuft, ist der Preis des Produkts für mein Budget ein wenig steil. Gibt es eine freie / Open-Source-Lösung da draußen?
Vielen Dank im Voraus!
Nach meinem Wissen gibt es kein kostenloses Tool, das mit der Struktur 101 vergleichbar ist. (Ich bin nicht angegliedert!)
Sie haben also schon eine Lösung, aber Sie sagen, die Preise sind zu hoch. Dies kann ein Irrtum sein.
Ich habe eine gigantische Codebasis, die ich in kleinere logische Einheiten aufteilen möchte.
Vermutlich machst du das nicht zum Spaß, aber jemand bezahlt dich dafür. Die USD 900 für die Struktur 101 betragen etwa 3-4 Arbeitstage - vorausgesetzt, Sie machen so etwas wie HKD 40.000 (USD 5200) pro Monat als Senior Softwareentwickler in Hongkong. Es sollte möglich sein zu argumentieren, dass dies am Ende tatsächlich eine Menge Geld sparen wird.
Eine Testversion von JAVADepend bietet die Möglichkeit, die Abhängigkeitsbeziehung ohne zeitliche Begrenzung zu analysieren.
es ist ein nettes Werkzeug.
Sehen Sie sich CodePro Analytix an. Es hat mehrere Tools für die Abhängigkeitsanalyse sowie viele andere Dinge, die Sie benötigen sollte bewusst sein.
Zur Offline-Analyse schauen Sie sich SonarQube an. Es hat keinen Abhängigkeitsgraphen, aber ein Modul für Abhängigkeitszyklen in Ihren Klassen und eine Tonne Qualitätsmessmodule.
Haben Sie sich ObjectAID oder PlantUML Plug-ins für Eclipse angesehen? Nicht so robust wie das, worum du fragst, aber definitiv einige gute UML-Modellierungsmechanismen zur Verfügung stellen.
Haftungsausschluss : Ich bin der Autor von Kaffee
Ich lehrte, dass ich teilen sollte, da ich wieder mit einem ähnlichen Problem konfrontiert bin (dh eine gigantische Codebasis mit mehrstufigen, komplexen Paketabhängigkeiten und kaum einer Struktur), und mir ist kein freies Alternativen für den Moment verfügbar.
Meiner Meinung nach übertrifft Scripting und / oder explizite Gruppierungsregeln nichts, wenn es um eine chaotische Paketstruktur geht, und da ich zuvor keinen vernünftigen Weg gefunden habe, habe ich meine eigenen Werkzeug .
Natürlich wird dies keine kommerzielle Alternative schlagen, aber es ist ein ziemlich einfacher Ansatz, der es Ihnen ermöglichen sollte, die interessanten Teile ohne das Umgebungsgeräusch zu untersuchen.
Tags und Links dependencies java