Czy są dostępne jakieś narzędzia, które obliczą metryki kodu (na przykład liczbę linii kodu, cykliczną złożoność, sprzężenie, spójność) dla twojego projektu i z czasem utworzą wykres pokazujący trendy?
Wydaje się, że SourceMonitor jest narzędziem działającym tylko w systemie Windows. Czy istnieje coś podobnego dla innych systemów operacyjnych (Linux, BSD, Mac)?
Mnementh
Mmmm, jestem programistą Windows, nie znam takich narzędzi dla facetów z FOSS. Może możesz spróbować uruchomić SourceMonitor pod emulatorem Wine?
aku
2
Teraz jest narzędzie typu NDepend dla C ++, CppDepend
Goosey.
SourceMonitor jest przeznaczony wyłącznie do użytku niekomercyjnego.
Scott 混合 理论
2
@Kevin 混合 理论 przeczytaj uważnie licencję - możesz jej używać w dowolnym środowisku, w którym po prostu nie możesz jej sprzedać. „Oznacza to, że możesz używać tego pliku wykonywalnego w ramach własnych przedsięwzięć programistycznych (komercyjnych lub innych), ale nie możesz go sprzedawać…”
Natalie Adams,
12
Sonar jest zdecydowanie narzędziem, które należy wziąć pod uwagę, szczególnie w przypadku projektów Java. Jednak będzie również obsługiwać kod PHP lub C / C ++, Flex i Cobol.
Oto zrzut ekranu przedstawiający niektóre metryki dotyczące projektu:
Szukałem również narzędzia / wtyczki do pomiarów kodu dla mojego IDE, ale o ile wiem, nie ma żadnego (to znaczy zaćmienia), które również pokazuje wykres złożoności w określonym przedziale czasu. Jednak znalazłem wtyczkę Eclipse metrics , która obsługuje:
Cyklomatyczna złożoność McCabe'a
Efektywne sprzęgła
Brak spójności metod
Linie kodu w metodzie
Liczba pól
Liczba poziomów
Liczba mieszkańców w zakresie
Liczba parametrów
Liczba instrukcji
Metody ważone na klasę
I podczas korzystania z niego nie przegapiłem opcji wykresu, której również szukasz.
Myślę, że jeśli nie znajdziesz żadnych wtyczek / narzędzi, które mogłyby obsłużyć wykresy w czasie, powinieneś spojrzeć na narzędzie, które najbardziej Ci odpowiada i oferuje wszystkie potrzebne informacje; nawet jeśli podane informacje dotyczą tylko bieżącej kompilacji projektu.
Na marginesie, wtyczka eclipse metrics umożliwia wyeksportowanie danych do pliku zewnętrznego (odsyłacz prowadzi do przykładu), więc jeśli używasz narzędzia do kontroli źródła, a powinieneś !, zawsze możesz wyeksportować dane dla konkretnego skompiluj i zapisz plik wraz z kodem źródłowym, dzięki czemu nadal będziesz mieć (podstawowy) sposób, aby cofnąć się w czasie i sprawdzić różnice.
Jeśli chodzi o narzędzie NDepend , zawiera 82 różne metryki kodu, od liczby wierszy kodu do rangi metody (popularność), złożoności cyklicznej, braku spójności metod, pokrycia procentowego (wyodrębnionego z NCover lub VSTS), głębokości dziedziczenia. .
Dzięki systemowi reguł NDepend może również znaleźć problemy i oszacować dług techniczny, który jest interesującą miarą kodu (ilość wysiłku deweloperskiego w celu naprawienia problemów w porównaniu z ilością czasu deweloperskiego marnowanego w ciągu roku, aby problemy zostały rozwiązane).
Jeśli jesteś w środowisku .NET, program CodeRush firmy Developer Express zapewnia analizę LOC, złożoności cyklicznej i (raczej znakomitej, IMHO) analizy złożoności konserwacji kodu w czasie rzeczywistym.
(Przepraszamy za link do skomplikowanej konserwacji; przechodzi do pamięci podręcznej Google. Oryginał wygląda na bankomat offline).
Atlassian FishEye to kolejne doskonałe narzędzie do tego zadania. Integruje się z systemem kontroli źródła (obecnie obsługuje CVS, SVN i Perforce) i analizuje w ten sposób wszystkie pliki. Analiza jest jednak dość podstawowa, a sam produkt jest komercyjny (ale w bardzo przystępnej cenie, IMO).
Możesz również pobrać do niego dodatek o nazwie Tygiel, który ułatwia recenzowanie kodu przez rówieśników.
W przypadku Visual Studio .NET (przynajmniej C # i VB.NET) bezpłatne StudioTools są niezwykle przydatne w przypadku metryk. Dodaje również szereg funkcji dostępnych w komercyjnych narzędziach, takich jak ReSharper .
Jeśli chodzi o PHP, uważam, że na przykład phpUnderControl zawiera metryki za pośrednictwem phpUnit (jeśli się nie mylę).
Pamiętaj, że wskaźniki są często błędne. Na przykład koder, który pracuje nad trywialnymi problemami, stworzy więcej kodu i będzie wyglądał lepiej na twoich wykresach niż programista, który rozwiązuje złożone problemy.
Jeśli szukasz analizy trendów, czy to naprawdę oznacza coś do zmierzenia poza SLOC?
Nawet jeśli po prostu wykonujesz grep dla końcowych średników i zliczając liczbę zwróconych wierszy, szukasz spójności w technice pomiaru SLOC. W ten sposób dzisiejszy pomiar można w sensowny sposób porównać z pomiarem z zeszłego miesiąca.
Naprawdę nie rozumiem, co dałby trend złożoności cyklometrycznej McCabe? Myślę, że CC powinno być używane bardziej jako migawka jakości, aby przekazać informacje zwrotne programistom.
Edycja: Ooh. Pomyślałem o kilku innych pomiarach, które mogą być przydatne. Komentarze jako procent SLOC i pokrycia testu. Żadnego z nich nie chcesz wypuścić. Powrót do modernizacji któregokolwiek z nich nigdy nie jest tak boski, jak robienie ich „w ogniu chwili!”
Zrozumienie Scitools ma możliwość wygenerowania dla Ciebie wielu metryk kodu. Nie mam dużego doświadczenia z funkcjami metryk kodu, ale ogólnie funkcje analizy statycznej były niezłe, a cena była bardzo rozsądna. Wsparcie było doskonałe.
Project Code Meter zapewnia różnicowy raport historii rozwoju (w formacie Excel), który pokazuje wskaźniki postępu kodowania w SLOC, czasie i procentach wydajności (jego oszacowanie czasu jest oparte na cyklicznej złożoności i innych wskaźnikach). Następnie w programie Excel możesz łatwo utworzyć żądany wykres.
W przypadku Javy możesz wypróbować nasze narzędzie QualityGate, które oblicza ponad 60 metryk kodu źródłowego, śledzi wszystkie zmiany w czasie, a także zapewnia ogólną ocenę łatwości utrzymania kodu źródłowego.
Odpowiedzi:
W moim ostatnim projekcie użyłem SourceMonitor . To fajne darmowe narzędzie do analizy metryk kodu.
Oto fragment z oficjalnej strony SourceMonitor:
W przypadku .NET, obok NDepend, które jest po prostu najlepszym narzędziem, mogę polecić vil .
Następujące narzędzia mogą przeprowadzać analizę trendów:
źródło
Sonar jest zdecydowanie narzędziem, które należy wziąć pod uwagę, szczególnie w przypadku projektów Java. Jednak będzie również obsługiwać kod PHP lub C / C ++, Flex i Cobol.
Oto zrzut ekranu przedstawiający niektóre metryki dotyczące projektu:
tekst alternatywny http://sonar.codehaus.org/wp-content/uploads/2009/05/squid-metrics.png
Zauważ, że możesz wypróbować to narzędzie, korzystając z ich witryny demonstracyjnej pod adresem http://nemo.sonarsource.org
źródło
NDepend dla .net
źródło
Szukałem również narzędzia / wtyczki do pomiarów kodu dla mojego IDE, ale o ile wiem, nie ma żadnego (to znaczy zaćmienia), które również pokazuje wykres złożoności w określonym przedziale czasu. Jednak znalazłem wtyczkę Eclipse metrics , która obsługuje:
I podczas korzystania z niego nie przegapiłem opcji wykresu, której również szukasz.
Myślę, że jeśli nie znajdziesz żadnych wtyczek / narzędzi, które mogłyby obsłużyć wykresy w czasie, powinieneś spojrzeć na narzędzie, które najbardziej Ci odpowiada i oferuje wszystkie potrzebne informacje; nawet jeśli podane informacje dotyczą tylko bieżącej kompilacji projektu.
Na marginesie, wtyczka eclipse metrics umożliwia wyeksportowanie danych do pliku zewnętrznego (odsyłacz prowadzi do przykładu), więc jeśli używasz narzędzia do kontroli źródła, a powinieneś !, zawsze możesz wyeksportować dane dla konkretnego skompiluj i zapisz plik wraz z kodem źródłowym, dzięki czemu nadal będziesz mieć (podstawowy) sposób, aby cofnąć się w czasie i sprawdzić różnice.
źródło
pamiętaj, że otrzymujesz to, co mierzysz. loc nie mówi nic o produktywności ani wydajności.
oceń programistę według linii kodu, a otrzymasz ... wiersze kodu. ten sam argument dotyczy innych wskaźników.
otoh .. http://www.crap4j.org/ to bardzo konserwatywna i użyteczna miara. określa złożoność w odniesieniu do pokrycia.
źródło
NDepend, używam go i najlepiej do tego celu. Sprawdź to: http://www.codeproject.com/KB/dotnet/NDepend.aspx
źródło
Jeśli chodzi o narzędzie NDepend , zawiera 82 różne metryki kodu, od liczby wierszy kodu do rangi metody (popularność), złożoności cyklicznej, braku spójności metod, pokrycia procentowego (wyodrębnionego z NCover lub VSTS), głębokości dziedziczenia. .
Dzięki systemowi reguł NDepend może również znaleźć problemy i oszacować dług techniczny, który jest interesującą miarą kodu (ilość wysiłku deweloperskiego w celu naprawienia problemów w porównaniu z ilością czasu deweloperskiego marnowanego w ciągu roku, aby problemy zostały rozwiązane).
Wszystkie te dane są szczegółowo opisane tutaj .
źródło
Jeśli jesteś w środowisku .NET, program CodeRush firmy Developer Express zapewnia analizę LOC, złożoności cyklicznej i (raczej znakomitej, IMHO) analizy złożoności konserwacji kodu w czasie rzeczywistym.
(Przepraszamy za link do skomplikowanej konserwacji; przechodzi do pamięci podręcznej Google. Oryginał wygląda na bankomat offline).
źródło
Atlassian FishEye to kolejne doskonałe narzędzie do tego zadania. Integruje się z systemem kontroli źródła (obecnie obsługuje CVS, SVN i Perforce) i analizuje w ten sposób wszystkie pliki. Analiza jest jednak dość podstawowa, a sam produkt jest komercyjny (ale w bardzo przystępnej cenie, IMO).
Możesz również pobrać do niego dodatek o nazwie Tygiel, który ułatwia recenzowanie kodu przez rówieśników.
źródło
W przypadku Visual Studio .NET (przynajmniej C # i VB.NET) bezpłatne StudioTools są niezwykle przydatne w przypadku metryk. Dodaje również szereg funkcji dostępnych w komercyjnych narzędziach, takich jak ReSharper .
źródło
Code Analyzer to proste narzędzie, które generuje tego rodzaju metryki.
(źródło: teel.ws )
źródło
W przypadku Pythona pylint może zapewnić pewne metryki jakości kodu.
źródło
Istnieje również wtyczka do metryki kodu dla reflektora , jeśli używasz .NET.
źródło
Polecam Code Metrics Viewer Exention dla Visual Studio.
Bardzo łatwo jest od razu przeanalizować rozwiązanie, zrobić również porównanie, jeśli zrobiłeś postęp ;-)
Czytaj więcej tutaj o funkcji
źródło
Jeśli chodzi o PHP, uważam, że na przykład phpUnderControl zawiera metryki za pośrednictwem phpUnit (jeśli się nie mylę).
Pamiętaj, że wskaźniki są często błędne. Na przykład koder, który pracuje nad trywialnymi problemami, stworzy więcej kodu i będzie wyglądał lepiej na twoich wykresach niż programista, który rozwiązuje złożone problemy.
źródło
Jeśli szukasz analizy trendów, czy to naprawdę oznacza coś do zmierzenia poza SLOC?
Nawet jeśli po prostu wykonujesz grep dla końcowych średników i zliczając liczbę zwróconych wierszy, szukasz spójności w technice pomiaru SLOC. W ten sposób dzisiejszy pomiar można w sensowny sposób porównać z pomiarem z zeszłego miesiąca.
Naprawdę nie rozumiem, co dałby trend złożoności cyklometrycznej McCabe? Myślę, że CC powinno być używane bardziej jako migawka jakości, aby przekazać informacje zwrotne programistom.
Edycja: Ooh. Pomyślałem o kilku innych pomiarach, które mogą być przydatne. Komentarze jako procent SLOC i pokrycia testu. Żadnego z nich nie chcesz wypuścić. Powrót do modernizacji któregokolwiek z nich nigdy nie jest tak boski, jak robienie ich „w ogniu chwili!”
HTH.
Twoje zdrowie,
Obrabować
źródło
Zrozumienie Scitools ma możliwość wygenerowania dla Ciebie wielu metryk kodu. Nie mam dużego doświadczenia z funkcjami metryk kodu, ale ogólnie funkcje analizy statycznej były niezłe, a cena była bardzo rozsądna. Wsparcie było doskonałe.
źródło
Project Code Meter zapewnia różnicowy raport historii rozwoju (w formacie Excel), który pokazuje wskaźniki postępu kodowania w SLOC, czasie i procentach wydajności (jego oszacowanie czasu jest oparte na cyklicznej złożoności i innych wskaźnikach). Następnie w programie Excel możesz łatwo utworzyć żądany wykres.
zobacz ten artykuł, który opisuje to krok po kroku: http://www.projectcodemeter.com/cost_estimation/help/FN_monsizing.htm
źródło
W przypadku Javy możesz wypróbować nasze narzędzie QualityGate, które oblicza ponad 60 metryk kodu źródłowego, śledzi wszystkie zmiany w czasie, a także zapewnia ogólną ocenę łatwości utrzymania kodu źródłowego.
źródło