Wtyczka VS do wizualizacji zależności między klasami

2

Szukam jakiejś darmowej wtyczki do VS która na podstawie kodu wygeneruje w formie graficznej zależności między klasami. Możecie coś polecić?
Niestety póki co znalazłem same płatne rozwiązania.

1

Zabieram się do napisania takowego już kilka lat :D. Aczkolwiek mnie bardziej interesuje wyższy poziom abstrakcji, czyli komponenty i warstwy.

W każdym razie można sobie samemu takie coś zrobić na bazie Mono.Cecil i wygenerować diagram w formacie plantUML czy mermaid:

Review .NET dependencies on every commit

0

Z ciekawości do czego ci to potrzebne?

0
markone_dev napisał(a):

Z ciekawości do czego ci to potrzebne?

Rozpracowuje sobie działanie czyjegoś projektu. Gdybym mógł go wyświetlić w formie blokowej łatwiej było by mi zrozumieć zasadę jego działania oraz co z czego wynika

1

@Michał Jasiński:

Rozpracowuje sobie działanie czyjegoś projektu. Gdybym mógł go wyświetlić w formie blokowej łatwiej było by mi zrozumieć zasadę jego działania oraz co z czego wynika

Ju siur? Jeżeli projekt to takie bagno, że nie da się zrozumieć kodu, to nawet jak wygenerujesz diagram klas, to będzie miał tyle prostokątów (klas) i tyle strzałek (powiązań), że będzie tak samo, a może i bardziej nieczytelny, zobacz na to:

screenshot-20230302180521.png

A to tylko same zależności pomiędzy dll-kami

0
markone_dev napisał(a):

@Michał Jasiński:

Rozpracowuje sobie działanie czyjegoś projektu. Gdybym mógł go wyświetlić w formie blokowej łatwiej było by mi zrozumieć zasadę jego działania oraz co z czego wynika

Ju siur? Jeżeli projekt to takie bagno, że nie da się zrozumieć kodu, to nawet jak wygenerujesz diagram klas, to będzie miał tyle prostokątów (klas) i tyle strzałek (powiązań), że będzie tak samo, a może i bardziej nieczytelny, zobacz na to:

screenshot-20230302180521.png

A to tylko same zależności pomiędzy dll-kami

Dla początkującego adepta sztuki programowania mimo wszystko może to być pomocne ;)

0

@Michał Jasiński:

Dla początkującego adepta sztuki programowania mimo wszystko może to być pomocne ;)

Doskonale zdaję sobie z tego sprawę, też byłem początkujący i myślałem tak jak Ty :)

A próbowałeś zrobić takie ćwiczenie, aby napisać testy jednostkowe albo integracyjne (zależnie od kupy w projekcie, bo założę się że niektórych zależności nie da się zamockować) do istniejącego kodu? Imo dużo łatwiej jest wtedy zrozumieć architekturę aplikacji, bo żeby test przeszedł to trzeba zrozumieć zależności. Plusem takich testów jest to, że uczysz się stopniowo, czyli na początku poznajesz tą część aplikacji która odpowiada za dany test. Dodając kolejne testy poznajesz kolejne obszary aplikacji. Dzięki temu masz kod pokryty testami i znasz architekturę aplikacji.

0
markone_dev napisał(a):

@Michał Jasiński:

Dla początkującego adepta sztuki programowania mimo wszystko może to być pomocne ;)

Doskonale zdaję sobie z tego sprawę, też byłem początkujący i myślałem tak jak Ty :)

A próbowałeś zrobić takie ćwiczenie, aby napisać testy jednostkowe albo integracyjne (zależnie od kupy w projekcie, bo założę się że niektórych zależności nie da się zamockować) do istniejącego kodu? Imo dużo łatwiej jest wtedy zrozumieć architekturę aplikacji, bo żeby test przeszedł to trzeba zrozumieć zależności. Plusem takich testów jest to, że uczysz się stopniowo, czyli na początku poznajesz tą część aplikacji która odpowiada za dany test. Dodając kolejne testy poznajesz kolejne obszary aplikacji. Dzięki temu masz kod pokryty testami i znasz architekturę aplikacji.

Dzięki za podpowiedz. Póki co jestem na etapie nauki testów jednostkowych. Rzeczywiście po tak dogłębnym przeanalizowaniu aplikacji można stopniowo rozpracować architekturę. Tylko to wydaje się być dość długotrwałym procesem.

0

@Michał Jasiński:

Tylko to wydaje się być dość długotrwałym procesem.

Poznawanie istniejących rozwiązań jest zawsze długotrwałym procesem. Zwłaszcza jeśli jest się początkującym. Nie jest niczym niezwykłym, że seniorzy potrzebują tygodni a czasem miesięcy, aby zrozumieć aplikację (zależnie od stopnia jest złożoności) nad którą pracują, a zdarza się, że i po kilku miesiącach pracy nie wie się wszystkiego.

0
markone_dev napisał(a):

@Michał Jasiński:

Tylko to wydaje się być dość długotrwałym procesem.

Poznawanie istniejących rozwiązań jest zawsze długotrwałym procesem. Zwłaszcza jeśli jest się początkującym. Nie jest niczym niezwykłym, że seniorzy potrzebują tygodni a czasem miesięcy, aby zrozumieć aplikację (zależnie od stopnia jest złożoności) nad którą pracują, a zdarza się, że i po kilku miesiącach pracy nie wie się wszystkiego.

Rozwiałeś sporo moich wątpliwości i obaw. Byłem przekonany, że gdy wchodzi się do projektu to na zrozumienie działania aplikacji ma się z dwa/trzy dni.

1 użytkowników online, w tym zalogowanych: 0, gości: 1