Introductie in Sonarqube

Kwaliteit is een van de meest verkeerd begrepen termen in de development wereld. Een code waarvan je denkt dat die van zeer goede kwaliteit is, kan van slechte kwaliteit zijn en vice versa. Een van de tools die gebruikt kunnen worden om de codekwaliteit te controleren is Sonarqube. Dit is een open-source software of tool die kan helpen om de kwaliteit van codes te verbeteren.

In dit artikel lichten we uit wat Sonarqube is, wat de functies zijn en hoe het te gebruiken. 

Development
10 april 2020
Martijn van der Put

Wat is Sonarqube?

Sonarqube is een open-source tool die gebruikt wordt om de codekwaliteit te waarborgen met behulp van statische codeanalyse. Het kan worden beschouwd als een geautomatiseerd codebeoordelingstool die handig is bij het verzekeren dat de code die je schrijft efficiënt, schoon en vrij van bugs en kwetsbaarheden is. Het is tevens een platform dat continue analyse biedt voor het meten van de technische kwaliteit van je code. Sonarqube integreert gemakkelijk met verschillende IDE’s. Het is geschreven in Java.


Kenmerken van Sonarqube

Hier zijn enkele opvallende kenmerken van Sonarqube:

  • Het kan worden uitgevoerd op bijna 25 verschillende programmeertalen, waaronder JAVA, .NET, JavaScript, Python, etc. 
  • Het kan de volgende codeproblemen identificeren:
  • Code ‘smells’: codekenmerken die aangeven dat er mogelijk in de toekomst een probleem kan zijn als gevolg van de code. 
  • Beveiligingslekken: Sonarqube kan beveiligingsproblemen identificeren waarmee de code te maken kan krijgen.
  • Bugs detecteren: het stelt developers in staat om verschillende soorten bugs in de code te detecteren en kan ook bugs signaleren in code die als foutief wordt beschouwd.
  • Activering van vereiste regels: gebruikers kunnen kwaliteitsprofielen maken die betrekking hebben op het maken en onderhouden van verschillende sets regels die specifiek zijn voor een project.
  • Uitvoeringspad: Sonarqube helpt om lastige bugs in het uitvoeringspad te vinden. 
  • Het zorgt voor een betere integratie van code en implementatie door middel van:
  • Integratie met Github: Sonarqube kan rechtstreeks in elke versiebeheersoftware naar keuze worden geïntegreerd.
  • Geautomatiseerde codeanalyse: Sonarqube kan geautomatiseerd worden door integratie met het implementatie- of integratiehulpmiddel. Na integratie werkt Sonarqube op de achtergrond en blijft het bugs en kwetsbaarheden vinden.
  • Webhooks en API: je kunt toegang krijgen tot Sonarqube via API-aanroepen om tests te starten.
  • Sonarqube analyseert alle branch-niveaus, inclusief de master branch en andere subbranches.
  • Ingebouwde methodologie:
  • Visualisatie: Sonarqube biedt een overzicht van de algehele ‘gezondheid’ van de code. Het dashboard is gemakkelijk te begrijpen.
  • Handhaving van kwaliteitspoort: je kunt Sonarqube opdragen een kwaliteitspoort af te dwingen op basis van je eisen van wat juiste code is en wat fout is. 
  • Ontdek geheugenlekken: Sonarqube geeft geheugenlekken weer.
  • Duidelijke weergave van problemen: het Sonarqube-dashboard stelt je in staat details over de fout te vinden door eenvoudig op de fout te klikken.

Sonarqube architectuur

Deze componenten integreren om het Sonarqube platform te vormen:

  1. Sonarserver: Een enkele Sonarqube-server behandelt drie hoofdprocessen:
     - Webserver: bedoeld voor developers om Sonarqube-instanties te configureren en kwaliteitsmomentopnames te bekijken.
     - Zoekserver: gebaseerd op Elasticsearch om zoekopdrachten vanuit de gebruikersinterface te ondersteunen.
     - Berekeningsengineserver: het belangrijkste onderdeel dat verantwoordelijk is voor het verwerken van de rapporten voor codeanalyse en het opslaan ervan in de Sonarqube database.
  2. Sonarqube plugins: meerdere Sonarqube-plugins worden ondersteund en kunnen op de server geïnstalleerd worden, waaronder SCM- en authenticatieplugins.
  3. Sonarqube databse: Sonarqube-scanners zijn bedoeld om code te scannen en de analyse van projecten uit te voeren. De scanners draaien continu op de servers.

Hoe Sonarqube werkt

Sonarqube maakt het mogelijk om kwaliteitsprofielen te creëren en voert analyse van de code uit volgens de regels die door de gebruikers zijn gedefinieerd in het kwaliteitsprofiel. Het analyseverslag dat door Sonarqube wordt gegenereerd, is volledig afhankelijk van de regels, voorschriften en machtigingen die door de gebruiker zijn gedefinieerd in het kwaliteitsprofiel. Zodra het rapport is gegenereerd door Sonarqube, kan de gebruiker de problemen oplossen door de details van de verschillende fouten door te nemen, waardoor de kwaliteit van de code wordt verhoogd.


Projecten scannen met Sonarqube

Download en installeer Sonarqube vanaf de officiële pagina. Integreer Sonarqube vervolgens met Maven. Schrijf nu een voorbeeld van broncode zoals hieronder vermeld 

HELLOWORLD.JAVA

Schrijf nu de unit test voor dit bestand.

HELLOWORLDTEST>JAVA

Plaats beide bestanden in de src-map binnen de hoofd- en testmap respectievelijk. Bewerk vervolgens het pom.xml-bestand volgens de door u vereiste configuraties. Voer ten slotte het Sonarqube-commando uit om het gewenste analyseverslag te bekijken.

Wat zijn de voordelen van Sonarqube? 

Als zo'n krachtige analyse-tool heeft Sonarqube de volgende voordelen:

  1. Het heeft verschillende ondersteunde plug-ins die kunnen worden gebruikt om het gebruiksgemak te vergroten. Zo kan bijvoorbeeld SonarLint worden gebruikt voor de integratie van Sonarqube in verschillende IDE's.
  2. Sonarqube heeft een duidelijk dashboard en detecteert niet alleen bugs, maar behandelt ook coderingsregels, testdekking, API-documentatie, enz.
  3. Het stelt je in staat om kwaliteitsprofielen te maken die specifiek zijn voor een project.
  4. Sonarqube helpt bij het identificeren van problemen in je code en stelt je in staat om de problemen op te lossen.
  5. Omdat het veel talen ondersteunt, is het zeer handig en gemakkelijk te gebruiken in meerdere projecten.
  6. Het is vooral erg handig voor ontwikkelaars die werken met strakke deadlines. Het stelt hen in staat om schone code te schrijven door middel van automatische analyse.


Conclusie

Je hebt nu gezien wat Sonarqube is en wat de voordelen zijn. Integreer Sonarqube met je IDE’s om de kwaliteit van je code te verbeteren.

Cookies
Deze site gebruikt geanonimiseerde cookies. Klik op "Akkoord" als je akkoord gaat met het gebruik van cookies, of klik op "Aanpassen" om je voorkeuren te bepalen.
Deze site gebruikt geanonimiseerde cookies.