in Expertise

Was ist ein Code Review? Wie wird das bei uns realisiert?

Im Prozess der Softwareentwicklung ist es notwendig, Routinen einzuführen, die für das beste Ergebnis des Teams zusammenarbeiten. Dabei spielt ein Code Review eine sehr große Rolle und es ist sehr wichtig, es in der Entwicklungsumgebung zu verwenden.  

Code Review ist eine systematische Untersuchung vom Source Code. Grundsätzlich besteht seine Funktion darin, Probleme zu identifizieren, die von den Programmierern möglicherweise unbemerkt bleiben, und alternative Wege zu ihrer Lösung vorzuschlagen und somit die Qualität der Software zu verbessern. Tatsächlich bringt die Codeüberprüfung dem Unternehmen eine Reihe von Vorteilen und garantiert die Entwicklung von Produkten mit besserer Qualität.  

Um die Codeüberprüfung korrekt zu verwenden, ist es notwendig, eine Reihe von Verfahren zu übernehmen, wie zum Beispiel:

  • Ein Wiki verwenden - ein Dokument, das aus allen projektbezogenen Aktivitäten besteht. 
  • Checklisten verwenden. 
  • Die Automatisierung in Verbindung mit manueller Arbeit verwenden, um wiederkehrende Muster und Fehler zu identifizieren. 
  • Die Tools zur Prozessoptimierung verwenden. 

Dank dem Code Review werden die Systemfehler und Bugs rechtzeitig behoben. Auf diese Weise gelangt die Anwendung ohne Widersprüche in die Produktionsphase und zum Endbenutzer. Davon profitiert auch das Entwicklungsteam, denn alle Beteiligten werden technisch aufgewertet. Darüber hinaus wird eine effizientere Zusammenarbeit erreicht. Außerdem hilft dieser Wissensaustausch dem Team, andere Lösungen zu finden, falls es Probleme in der Entwicklung gibt. Besonders für diejenigen, die im Programmierbereich anfangen und noch kein sehr genaues kritisches Code-Gespür, ermöglicht diese Art von Feedback eine schnellere Weiterentwicklung. Es verleiht also einen großen Mehrwert nicht nur dem Team, sondern auch dem Unternehmen.  

Ein weiterer Vorteil ist, dass die Verantwortlichkeiten aufgeteilt und keine Entwickler überlastet werden, was die Gesamtproduktivität von Projekten erhöht.   

Was ist SonarQube?  

Die Sicherstellung der Qualität der Software ist von grundlegender Bedeutung, und dafür können wir bekannte Praktiken mit Tools wie SonarQube verknüpfen. 

SonarQube ist ein Werkzeug, um die Qualität des Quellcodes sicherzustellen. Es führt mehrere Analysen durch und erkennt beispielsweise:  

  • Quellcodeausschnitte, die Fehler generieren können  
  • Doppelte Befehlszeilen, wodurch die Wiederholung unnötiger Anweisungen verhindert wird   
  • Sicherheit   

Diese Analysen erfüllen Qualitätsmetriken, die im Tool selbst nach einigen vordefinierten Mustern konfiguriert werden, die jedoch leicht anpassbar sind. 

Die Vorteile von SonarQube:

  • Verbesserung der Qualität von IT-Systemen und Anwendungen  
  • Bessere Folgenabschätzung  
  • Größere Sichtbarkeit der Softwarequalität  
  • Sichtbarkeit von Verbesserungen und potenziellen Problemen  
  • Risikominderung bei der Umsetzung neuer Anforderungen in der Entwicklung   
  • SonarQube kann mit anderen Tools synchronisiert werden 

Wie wird Code Review bei uns realisiert?   

Bei Kenner Soft haben wir zwei Möglichkeiten des Code Reviews:

  • Automatischer Code Review via SonarQube
  • Manueller Code Review, durchgeführt von anderen Entwicklern (in der Regel von Senior Developern, Teamleitern). 

Wir nutzen ein Console Tool, das ermöglicht, nach der Task-Beendigung, ihn an den Teamleiter automatisch zuzuweisen. 

code review

Auf dem Screenshot sieht man, dass der Programmierer den Task gemacht hat, und er wurde automatisch an den Team Lead zugewiesen. 

Beim Klicken auf View the diff kann man den Arbeitsumfang ansehen, d.h. alle durchgeführten Änderungen im Code:

code changes

Gleichzeitig wird die Aufgabe dem Review via SonarQube unterliegt. Der Bericht mit den Ergebnissen dieser Überprüfung wird auch dem Task automatisch hinzugefügt. SonarQube analysiert den Code, und falls es bestimmte Probleme beziehungsweise mögliche Fehler gefunden wurden, wird der Task zurück an den Entwickler zugesandt, damit er diese behebt oder Änderungen vornimmt. Wenn es keine Probleme gefunden wurden, wird der erfolgreiche im Task angezeigt. 

Der erfolgreiche SonarQube Bericht sieht so aus: 

sonarqbe report

Der nicht erfolgreiche Bericht: 

sonarqbve reposrt2

Hier wurden die Code-Duplizierungen gefunden. 

Die Übermittlung des Codes wird via Gitlab CI/CD durchgeführt. Die Hauptkonzepte von CI/CD sind Continuous Integration, Continuous Delivery und Continuous Deployment. CI/CD löst die Probleme, die die Integration von neuem Code für DevOps-Teams verursachen kann.

Beispiel der GitLab CI - Datei:

  • .gitlab-ci.yml

    stages:
    - test

    image:
    name: sonarsource/sonar-scanner-cli:latest
    entrypoint: [""]
    variables:
    SONAR_TOKEN: "$SONARTOKEN"
    SONAR_HOST_URL: "$SONARHOSTURL"
    GIT_DEPTH: 0
    sonarqube-check:
    stage: test
    script:
    - sonar-scanner -Dsonar.qualitygate.wait=true
    allow_failure: true
    tags:
    - sonarqube

Nachdem der Entwickler die Fehler behoben hat, und die erneute Überprüfung erfolgreich war, unterliegt der Task dem manuellen Review. Wenn es nach dem manuellen Review gewisse Bemerkungen gibt, wird der Task mit den Kommentaren automatisch via einen Console-Befehl an den Entwickler zurück zugewiesen. Man braucht also nicht, den Task über den Task Manager (wir nutzen Redmine) zuzuweisen, da es ein voll automatisierter Prozess ist. Über die Zusammenarbeit von Redmine und GitLab bei uns lesen Sie hier

Falls es nach dem Review keine Probleme gefunden wurden, d.h., der Team Lead hat keine Bemerkungen und die Überprüfung ist erfolgreich, wird dieser Task an den Test-Server übermittelt. Es werden zwei Tests durchgeführt: automatisches und manuelles. Mehr über den Prozess des Testens lesen Sie in unserem anderen Artikel

Unsere Agentur Kenner Soft Services GmbH achtet sehr viel auf die Qualität der erbrachten Leistungen. Wir überprüfen den Code, sehr gründlich und sorgfältig, um das beste Ergebnis den Kunden zu liefern. 

Haben Sie Interesse an ein engagiertes Team?

Bitte nehmen Sie Kontakt mit unserem Team auf, gerne helfen wir Ihnen weiter.


Rated 0.0/5
Kommentare unterstützt von Disqus.