Czym jest SonarLint?
Popraw jakość kodu i napraw błędy zanim uruchomisz swoją aplikację z tym darmowym rozszerzeniem IDE!

Rozszerzenie IDE, które zmieni Twoje devowe życie
SonarLint to darmowe rozszerzenie IDE (ang. Integrated Development Environment, czyli zintegrowane środowisko developerskie), które identyfikuje i pomaga naprawiać luki bezpieczeństwa i poprawiać jakość kodu podczas jego pisania. Warto nadmienić, że jest Open Source. Można porównać go do narzędzia, które sprawdza poprawność naszej pisowni np. w programie Microsoft Word i podkreśla błędy, które popełniliśmy.
Przykładami IDE są InteliJ IDEA i Eclipse. Rozszerzenie SonarLint jest dostępne dla wielu IDE:
W tym artykule skupię się na korzystaniu z SonarLint na InteliJ IDEA Community Edition.
Instalacja
Instalacja SonarLint jest niezwykle prosta. Aby to zrobić należy:
- Otworzyć InteliJ IDEA
- Skrótem
CTRL + ALT + S
otworzyć ustawienia - Przejść do opcji
Plugins
- Zaznaczyć zakładkę
Marketplace
- Wyszukać rozszerzenie
SonarLint
- Kliknąć przycisk
Install
- Po zainstalowaniu kliknąć przycisk
Restart IDE
->Restart

Na Wirtualnej Maszynie, którą Ci udostępniam, rozszerzenie SonarLint jest już zainstalowane.
Reguły
SonarLint korzysta z tej listy reguł podczas skanowania kodu. Nie ograniczają się one tylko do Javy, ale istnieją również dla wielu innych języków. Kod jest skanowany w trakcie jego pisania (lub skrótem CTRL + SHIFT + S
) i gdy pojawi się w nim jakiś problem, natychmiast jesteś o nim informowany w zakładce SonarLint. Przykładowo po stworzeniu pustej klasy w InteliJ IDEA w zakładce SonarLint pojawia się reguła java:S2094. Mówi ona nam, że klasy nie powinny być puste i jeżeli chcemy tak to pozostawić, to klasa powinna zostać zamieniona na interfejs.

Jednakże w klasie tej chciałbym umieścić jakieś Constanty, czyli wartości stałe, które mogę potem użyć w innych klasach. Będę miał je zdefiniowane w jednym miejscu zamiast zahardcodowane w wielu (umieszczone bezpośrednio w źródłowym kodzie). Po dodaniu dwóch Constantów SonarLint wyświetlił regułę java:S1118. Reguła ta mówi nam, że klasy pomocnicze (składające się tylko ze statycznych elementów) nie powinny posiadać publicznych konstruktorów.

Java dodaje pośrednio publiczny konstruktor bez argumentów do każdej klasy, w której nie zdefiniowaliśmy żadnego konstruktora. W związku z tym po dodaniu bezpośrednio prywatnego konstruktora nasza klasa pomocnicza będzie zgodna ze wszystkimi regułami i nie będzie można stworzyć jej instancji.

Warto nadmienić, że reguły posiadają swój opis, ale także przykłady niezgodnego (ang. noncompliant) i zgodnego (ang. compliant) kodu z regułą wraz z wyjątkami. Dzięki temu same reguły mogą być też dobrym źródłem wiedzy co należy robić, a czego nie.

Dodatkowe informacje
Automatyczną analizę kodu SonarLint można włączyć/wyłączyć przechodząc do ustawień skrótem CTRL + ALT + S
i w opcji Tools
należy przejść do opcji SonarLint
. Tam znajduje się ustawienie Automatically trigger analysis
.

W zakładce File Exclusions
możemy wyłączyć skanowanie dla danych plików, zaś w zakładce Rules
możemy włączyć lub wyłączyć reguły.
Skanowanie w otwartym pliku możemy również uruchomić w zakładce SonarLint
w oknie Current file
zielonym przyciskiem Analyze with SonarLint
(skrót CTRL + SHIFT + S
:

Skanowanie całego projektu możemy uruchomić w oknie Report
przyciskiem Analyze All Project Files
:

Jeżeli z jakiegoś powodu nie widzisz zakładki SonarLint w pasku na dole InteliJ IDEA, to możesz otworzyć ją w menu View
-> Tool Windows
-> SonarLint
.
Parę słów o Czystym Kodzie
Jeżeli już mówimy o jakości i bezpieczeństwie naszego kodu, warto również wspomnieć o jego czystości. Książka Czysty Kod. Podręcznik dobrego programisty Roberta C. Martina jest zdecydowanie obowiązkową pozycją dla każdego programisty. Wydana w 2010 roku, ale wciąż aktualna! Zbliżają się święta, więc może warto napisać list do św. Mikołaja i wyczekiwać jej pod choinką 😀

Podsumowanie
Dzięki darmowemu rozszerzeniu SonarLint dla wielu IDE możesz identyfikować i naprawiać luki bezpieczeństwa czy poprawiać jakość kodu podczas jego pisania. Instalacja jest banalnie prosta, zaś czytanie samych reguł oraz dostosowywanie do nich kodu dostarcza wiedzy, która z pewnością zaprocentuje w przyszłości.
Ponadto warto skanować swój kod przed commitem do repozytorium. W pracy, gdy dodasz swoje zmiany i skończysz zadanie, zazwyczaj podlegają one procesowi review (przegląd kodu) przez innego programistę. Lepiej więc skorzystać z pomocy SonarLint i za wczasu dostosować swój kod do jego reguł niż otrzymać komentarz od kogoś innego z prośbą o poprawę, prawda? 😉
Liczba komentarzy:
Zaloguj się lub dołącz do społeczności Javowców, aby móc uczestniczyć w dyskusji 🙂