Mamy bazę kodu Java, która stała się zbyt duża dla pojedynczego monolitycznego JAR (ponad 5000 klas). Jednym z zadań, które badamy, jest to, ile wysiłku byłoby rozbicie tego pojedynczego pliku JAR na mniejsze komponenty z kontrolowanymi zależnościami między nimi. Jednak trochę trudno jest spojrzeć na dużą torebkę kodu i upewnić się, że znajdujesz najlepsze punkty separacji bez jakiejkolwiek analizy.Czy istnieje narzędzie do wizualizacji, które może sprawdzać bazę kodu Java i raportować zależności między pakietami?
Czy istnieją dobre narzędzia do sprawdzania i wizualizacji zależności interpackażu? Biorąc to pod uwagę, mielibyśmy zestaw sugerowanych punktów cięcia, w których moglibyśmy rozpocząć oddzielanie kodu.
Jako przykład, w dniach przed Netbeans i Eclipse (i przy innej pracy) użyliśmy TogetherJ i TogetherEnterprise. Ci mieli możliwość wykonania statycznej analizy pakietów i narysowania diagramu UML. Takie zachowanie byłoby optymalne, ale ta funkcja sama w sobie nie wystarcza, aby uzasadnić koszt.
Myślę, że jeśli potrzebujesz narzędzia, które powie ci, jak zorganizować 5000 klas, masz więcej kłopotów niż to narzędzie może cię wyciągnąć. Powodzenia. – z5h
@ z5h, szczerze? Dlaczego nie używałbyś narzędzia do wyszukiwania zależności? Wydajność takiego narzędzia jest bardzo przydatna do prowadzenia prac refaktoryzacyjnych. Pamiętaj, to jest coś, co pomaga ci zidentyfikować węzły o słabym wzajemnym sprzężeniu. Węzły te mogą następnie stać się kandydatami do oddzielnych dostarczanych produktów do budowy. Krótsze czasy budowy zarówno dla zlokalizowanych zmian, itp., Są silnymi motywacjami dla tego rodzaju refaktoryzacji. Jeśli istnieją narzędzia, które pomagają wskazać "zacznij tutaj, to cięcie byłoby łatwe", dlaczego nie używałbyś czegoś takiego? –
Po prostu "komentowałem", że jeśli jesteś na etapie, na którym masz 5000 klas i nie ma wystarczająco dużo architektury aplikacji, aby poprowadzić cię w dobrym kierunku bez narzędzia, to brzmi jak bardzo zła sytuacja. Nie jest to ćwiczenie optymalizacyjne, w którym narzędzie podpowiada, na co patrzeć dalej. To jest * cała architektura twojej aplikacji *, która powinna być lepiej obsługiwana. Jeśli używasz narzędzia jako weryfikacji pomysłów, brzmi to dobrze. Jeśli prowadzi swój projekt, brzmi to przerażająco. Sprawiłeś, że brzmi to tak, jakby narzędzie prowadziło Twój projekt. – z5h