Code kwaliteit met SonarCloud

Technologie

Code kwaliteit met SonarCloud

Wat is het?

Bij Garansys streven we naar een optimale balans tussen snelheid en kwaliteit. Naast methodieken als Theory of Constraints (ToC) en een Agile werkwijze maken we ook gebruik van diverse tooling. Bij het ontwikkelen van software gebruiken we bijvoorbeeld SonarCloud. SonarCloud is een statische code analyse tool om de kwaliteit van onze code te kunnen meten.

Zodra een ontwikkelaar zijn nieuwe code oplevert wordt deze door SonarCloud automatisch geanalyseerd en voorzien van feedback.

Waarom gebruiken we het?

Reden om een tool als deze te gebruiken is dat deze eenvoudig inzetbaar is en een hoop ellende kan voorkomen. Zo valideert de tooldiverse beveiligingskwetsbaarheden (SANS top 25 en de OWASP top 10), kijkt het naar mogelijke performanceproblemen en helpt het ontwikkelaars om hun code logisch en leesbaar te (blijven) schrijven.

 

Een ander voordeel is dat de tool werkt met eenvoudige uitleg bij zaken die het detecteert, zo is het voor ontwikkelaars eenvoudig om snel een fix door te voeren. Kleine dingen als bijvoorbeeld een variabele die wordt gedefinieerd, maar verder nooit wordt aangeroepen, wordt als een zogenaamde ‘code smell’ gedetecteerd door SonarCloud.

 

Het mooie aan SonarCloud is ook dat je zelf een Quality Gate kunt definiëren. Zo kun je bijvoorbeeld aangeven dat een fout als hierboven genoemd blokkerend werkt. Indien dit niet wordt opgelost kan het werk niet doorgezet worden door de ontwikkelaar. Die zal dit dus eerst moeten oplossen. Dit valt ook in te regelen voor automatische tests, waarbij gecontroleerd wordt of de aanwezige tests een voldoende percentage van de (nieuwe) code afdekken. Op deze manier kun je dus een kwaliteitsstandaard afdwingen zoals jij die wilt.

 

Naast het detecteren is er ook een handig dashboard aanwezig waarbij een totaal overzicht gegeven wordt van de gehele code base. Hierbij kan er op abstract niveau gekeken worden naar hoe staat het met het percentage unit testen, hoeveel ‘code smells’ er zijn en of er security (of andere) bugs zijn. Desgewenst kan er ook doorgestapt worden naar specifieke files en de daarbij behorende metrics.

RL403372 (1)

Hoe gebruiken we het?

Naast SonarCloud zijn we ook bekend met andere tools die dit soort statische code analyses uitvoeren, bijvoorbeeld SIG of TIOBE. Soms wenst een klant dat we één van deze tools gebruiken en een andere keer adviseren wij de klant op het gebruik van een dergelijke tool.

 

In de praktijk zien we dat we hoofdzakelijk SonarCloud gebruiken en dat ontwikkelaars lokaal gebruik maken van SonarLint, een extensie voor verschillende development tools (IDE’s). In ons geval is dat meestal Microsoft Visual Studio. Deze extensie kan ook gekoppeld worden aan de specifieke instellingen voor dat project vanuit SonarCloud.

 

Door lokaal SonarLint te gebruiken krijgt de ontwikkelaar al direct feedback op zijn code en niet pas nadat hij de code heeft aangeboden. Dit is minder tijdsintensief en voor de ontwikkelaar ook minder frustrerend. Hij kan immers gelijk correcties doorvoeren alvorens hij de code aanbiedt. De kans dat er dan zaken uitkomen door een analyse van SonarCloud is dan een stuk kleiner, maar…nooit nul.

Wat gebruiken jullie voor het op peil houden van je code kwaliteit? Naast statische code analyse zijn er natuurlijk ook tools als een CodeMaid voor het o.a. ‘visueel’ op peil houden van de code. Daarover schrijven we een volgende keer meer!

Roblipsiusxgaransys 0013 Patrick

Meer weten? Neem contact op.

Patrick Severijns

Business Unit Manager
06-51150885
p.severijns@garansys.nl