Najlepsze narzędzia do sprawdzania jakości kodu
Code Climate, Codacy, SonarQube i wiele innych narzędzi wspomaga pracę współczesnego dewelopera. Dobra jakość kodu i jego wysoka czytelność to nie tylko lepiej działająca aplikacja, ale przede wszystkim większa łatwość jej modyfikacji i rozwijania.
Nie będzie odkryciem stwierdzenie, że kodować można dobrze lub źle. W obydwu przypadkach aplikacja może działać, ale niska jakość programowania, przekłada się również na jakość kodu, na jego strukturę i utrudnia wprowadzanie modyfikacji oraz dodawanie nowych funkcjonalności. Jeśli kod jest przejrzysty i zrozumiały dla wszystkich, łatwiej i szybciej można nad nim pracować. Do tego dochodzą jeszcze przyzwyczajenia poszczególnych koderów, które mogą dodatkowo zaciemniać kod. Na szczęście deweloperzy coraz częściej korzystają z narzędzi, które pozwalają zautomatyzować sprawdzanie jakości kodu. Oto krótki przegląd kilku z nich.
Code Climate
Narzędzie prosto z Nowego Jorku, które już zyskało wielu zwolenników na całym świecie. Twórcy Code Climate chwalą się, że już ponad 50 tys. programistów korzysta z ich produktu. Dzięki Code Climate można dokonywać analizy statycznej kodu i w ten sposób wykryć wszelkie powtórzenia oraz identyfikować skomplikowane metody i klasy.
Narzędzie to można wykorzystać w przypadku takich języków, jak na przykład CSS, Go, JavaScript, PHP, Python, Ruby. Po każdym skanie, narzędzie wystawia ocenę jakości kodu, która ulega zmianie wraz z poprawianiem jego fragmentów lub po dodaniu do niego nowych funkcjonalności. Code Climate oblicza również pokrycie kodu testami. Monitorowane jest wykonywanie wszystkich linii kodu w czasie testu, a następnie wyświetlany jest wynik w formie procentowej (Test Coverage). Code Climate jest darmowy dla projektów open source.
GitLab Code Quality
Pisząc o Code Climate, nie sposób nie wspomnieć o tym, że szeroko zakrojoną integrację z tym narzędzie oferuje „out-of-the-box” GitLab, jedno z najpopularniejszych repozytoriów kodów wykorzystywane przez dziesiątki milionów developerów na całym świecie. Cały proces przebiega automatycznie w ramach GitLab CI/CD, niemniej funkcjonalność silnika automatycznego wyłapywania czynników obniżających jakość kodu różni się ze względu na rodzaj gitlabowego konta – ze szczegółami można zapoznać się tutaj.
Dzięki GitLab Code Quality – na bazie wtyczek obsługiwanych przez Code Climate (przy czym nie jest wymagana osobna subskrypcja na samo Code Climate) – można konfigurować i integrować własne skanery, generować raporty (JSON i HTML) o odnalezionych artefaktach czy przeglądać wyniki działania skanerów bezpośrednio w oknie merge’owania.
CodeFactor
Skoro była mowa o GitLabie, nie można pominąć GitHuba. Tam w zakresie automatyzacji sprawdzania jakości kodu dużą popularnością cieszy się CodeFactor. To zaawansowane narzędzie przeprowadzające maszynowe code review bez konieczności jakiejkolwiek prekonfiguracji – CodeFactor automatycznie skanuje każdy commit i pull request.
Rozszerzenie może pochwalić się pokaźną liczbą obsługiwanych języków, m.in. C, C#, C++, Go, Java, JavaScript, Kotlin, PHP, Python, Ruby, Swift czy TypeScript, a to tylko część z nich. CodeFactor oferuje także możliwość ustanawiania własnych reguł per projekt, może dokonywać automatycznych poprawek, a także serwuje wskazówki dotyczące refaktoryzacji kodu. CodeFactor jest darmowy dla kont typu Community, ceny wersji dla kont komercyjnych startują od 27 dolarów za miesiąc.
Codacy
Alternatywą dla Code Climate jest Codacy, który obsługuje języki: Ruby, Java, JavaScript, PHP, Python, Scala, coffeescript i CSS. To narzędzie, które bardzo dobrze sprawdza się zarówno w małych, jak i dużych firmach. Codacy również dokonuje analizy statycznej i wykrywa powtórzenia w kodzie oraz oblicza pokrycie kodu testami. Narzędzie automatycznie wykrywa nowe elementy kodu i poddaje je analizie.
Codacy to bardzo elastyczne narzędzie i łatwo go przystosować do własnych potrzeb. Pozwala również dokładnie śledzić ewolucję kodu i pokazuje, w jaki sposób zmienia się projekt, jak ewoluuje. Codacy przegląda kod automatycznie, co sprawia, że deweloperzy nie muszą zaprzątać sobie tym głowy, a to znacznie usprawnia pracę. Narzędzie to można zainstalować na własnym serwerze. Dodatkowo zapewniane jest kompleksowe wsparcie ze strony producenta Codacy.
Gremlins Tracker
O Gremlins Tracker trudno myśleć w kategoriach typowego narzędzia służącego stricte do podwyższania jakości kodu. Jest ono jednak nieocenione, jeśli chodzi o unikaniu, krótko mówiąc, „głupich” błędów. To rozszerzenie do Visual Studio Code pozwala bowiem dostrzec to i naprawić to, co może umknąć ludzkiemu oku, a co finalnie może przełożyć się na nieudaną kompilację.
Gremlin Tracker przeczesuje kont pod kątem niewidocznych znaków, np. spacji o zerowej szerokości. Podkreśla także błędnie zastosowane cudzysłowy i inne potknięcia, które po kilkunastu godzinach przed komputerem zdarzają się nawet najlepszym.
SonarQube
Analizy jakości kodu mogą zabierać bardzo dużo czasu, dlatego coraz więcej deweloperów stara się zautomatyzować tego rodzaju procesy. Kolejnym narzędziem, które może w tym pomóc, jest platforma SonarQube. Dane wejściowe, czyli kod źródłowy, przekazywany jest z IDE lub z SCM. Platforma analizuje kod zgodnie ze zdefiniowanymi wcześniej zasadami i w ten sposób sprawdza, czy te zasady zostały spełnione.
SonarQube obsługuje ponad 20 języków programowania, w tym między innymi Java, PL/SQL, Cobol, C/C++ i C#. To jednak nie wszystko. Narzędzie to obsługuje różne wtyczki, także napisane pod konkretny język, który wcześniej nie był obsługiwany. To sprawia, że można znacząco rozszerzyć funkcjonalność SonarQube. Użytkownik otrzymuje do dyspozycji tak naprawdę cztery komponenty tego narzędzia: bazę danych, wtyczki, analizator i serwer.
Understand Scitools
To kolejne narzędzie do statycznej analizy kodu. Według twórców, Understand jest obecnie wykorzystywany przez co najmniej 20 tys. deweloperów na całym świecie. Może również działać jako zintegrowane środowisko programistyczne. Przede wszystkim jednak dysponuje bardzo dobrymi możliwościami analitycznymi, a wyniki testów mogą być wizualizowane.
Understand wspiera bardzo wiele języków programowania, jak na przykład Java, Python, C/C++, C#, Delhi/Pascal. To bardzo szybkie narzędzie, potrafi w 5 minut przeanalizować nawet 1 milion linii kodu.
GitLens
GItLens to potężne rozszerzenie do Visual Studio Code, dzięki któremu Git w danym projekcie nie będzie miał przed tobą żadnych tajemnic, a jest to bez wątpienia czynnik, który bezpośrednia przekłada się na jakość produkowanego kodu. Jest to narzędzie naprawdę znacznie rozszerzające moduł śledzenia Gita wszyty w VSC, przede wszystkim za sprawą rozbudowanych funkcji nawigacji po zmianach, ale nie tylko.
GitLens oferuje bowiem także między innymi system automatycznych adnotacji informujących o tym, kto ostatni modyfikował kod z dokładnością do linijki. Przydatna może się także okazać swoista heatmapa, dzięki której można się dowiedzieć, które fragmentu kodu były modyfikowane najczęściej czy bardzo liczne widoki panelu bocznego, dzięki któremu można przeglądać commity, repozytoria, historie plików, branche, tagi i wiele, wiele innych.
Oczywiście nasze zestawienie nie wyczerpuje wszystkich narzędzi, jakie można wykorzystać do analizy jakości kodu. Na rynku dostępne są coraz nowsze rozwiązania, które oferują różne funkcjonalności. Dlatego należy przede wszystkim dobrać narzędzie do własnych potrzeb i do specyfiki pracy danego zespołu programistów.