2008-11-18 26 views
5

Od wczoraj analizuję jeden z naszych projektów z Ndepend (darmowy dla większości jego funkcji) i więcej go używam, a jeszcze bardziej wątpię w prawdziwą wartość tego typu oprogramowania (oprogramowanie do analizy kodu).Ndepend i inne rewelacje automatycznego analizatora kodu?

Pozwól mi wyjaśnić, system buduje raport o kondycji systemu i klasy według rangi każdej metryki. Pomyślałem, że to dobry punkt wyjścia do modyfikacji, ale większość z najlepszych wyników jest tutaj, ponieważ mają ponad 100 linii wewnątrz klasy (mamy duże nagłówki i używamy stylów komentarzy VS), więc to nie jest wielka sprawa. niż liczba Afferent Coupling Level (CA) jest zawsze zbyt wysoka i jest to prawie prawdziwe w przypadku interfejsu, którego użyliśmy dużo ... więc w tej chwili nie widzę czegoś złego, ale wydaje mi się, że NDepend go nie lubi (jeśli masz sugestię poprawy, powiedz mi, bo nie widzę potrzeby). To samething dla metryki nazwie „NOC” do Liczba dzieci, które większość mojego Interface są zbyt wysokie ...

Na razie tylko bardzo przydatna metryka jest Złożoność cykliczna ...

Moje pytanie brzmi:: Czy uważasz, że warto analizować kod za pomocą Automatic Code Analyzer, takiego jak NDepend? Jeśli tak, to jak filtrować wszystkie informacje, które wymieniłem, które tak naprawdę nie pokazują prawdziwego stanu systemu?

+0

oczywiście jest trochę stary, ale myślę, że musisz spojrzeć na te interfejsy. Duża liczba dzieci najprawdopodobniej podkreśla łamanie zasady odpowiedzialności pojedynczej. To z kolei prawdopodobnie wpłynęłoby na wasze sprzężenie zwrotne. To z kolei ma wpływ na łatwość konserwacji twojego kodu (większe sprzężenie doprowadzające powoduje większy ból przy wprowadzaniu zmian). Czy to jest przydatne. IMHO, tak. Wystarczy, że spojrzysz na swój kod i zobaczysz, co możesz zrobić, aby było lepiej i zrozumieć, co dane próbują ci powiedzieć. – pms1969

Odpowiedz

2

W rzeczywistości metryki to tylko jedna cecha NDepend, czy próbowałeś użyć VisualNDepend, który pozwala ci analizować projekt znacznie głębiej niż raport? Czytając twój komentarz jestem prawie pewien, że nie grałeś z NDepend UI (samodzielnym lub zintegrowanym w Visual Studio), który jest najlepszym sposobem filtrowania danych o twojej bazie kodu.

Jestem jednym z twórców NDepend i używamy go do analizy własnego kodu. Zasadniczo piszemy nasze własne zasady dotyczące jakości z Code Rules over LINQ Queries (CQLinq). Te zasady automatycznie gwarantują, że nie mamy regresji w naszym projekcie. Tutaj znajdziesz listę około 200 default code rules.

Oto kilka unikalnych cech NDepend i nie związane z metryk kodu:

Aby uzyskać pełną listę funkcji, jeśli NDepend, zobacz here.

+0

Grałem w Litte (2 godziny) z VisualNDepend. Nie mówię, że produkt nie jest dobrze zrobiony, ale powiedzmy Matrix ... W porządku Mam moduł LOG z wysokim sprzęgłem ... to normalne .. niż widzę łącznik wysokości między Fasadą Perspektywy a BusinessObject ... to jest normalne ... –

+0

Wszystkie te "normalne" sytuacje są mocno osadzone w NDepend (i innym oprogramowaniu z metryką), czy są naprawdę rewelacyjne? To jest moje pytanie. +1 Dla twojej odpowiedzi lubię znać opinie i osobiste doświadczenia, ale nie przekonałeś mnie jeszcze o używaniu tego narzędzia;) –

2

Niekoniecznie postrzegam wyniki NDepend jako "dobre" lub "złe" w inżynierii oprogramowania, zawsze istnieje dobry powód, dla którego aplikacja jest zaprojektowana tak, jak jest. Uważam, że jest to raport, który prawdopodobnie pomoże mi wskazać problemy z moim projektem, ale mam ostatnie słowo, jeśli chodzi o decyzję, czy dana metoda musi zostać refaktoryzowana, czy też jest dobra, tak jak ją zaprojektowałem. Ogólnie rzecz biorąc, nie daj się złapać, próbując odpowiedzieć, czy to jest tego warte, czy nie. Zdecydowanie jest, zamiast tego sugerowałbym, aby uważnie przejrzeć wyniki. Pomoże Ci to spojrzeć na swój projekt z innej perspektywy, a mogą zdarzyć się sytuacje, w których zdecydujesz, w jaki sposób zaprojektujesz najlepsze rozwiązanie, aby osiągnąć cele aplikacji.

Powiązane problemy