41
code-quality.de @FrankS Effective Code Reviews

Effektive Code Reviews Solutions

Embed Size (px)

Citation preview

code-quality.de @FrankS

Effective Code Reviews

Moin!

Frank SonsFrank Sons FrankS FrankS

http://code-quality.dehttp://code-quality.de

code-quality.de @FrankS

Enterprise PHP?

code-quality.de @FrankS

Eine kleine Agenda

Eine Übersicht über Code ReviewsEine Übersicht über Code Reviews

Code Reviews effektiver machenCode Reviews effektiver machen

code-quality.de @FrankS

Schauen wir uns mal die Grundlagen an

Zwei Wege für Code ReviewsZwei Wege für Code Reviews

Erwartungen und die RealitätErwartungen und die Realität

Ein verstecktes ProblemEin verstecktes Problem

code-quality.de @FrankS

Review tools - asynchron

code-quality.de @FrankS

Persönliche Code Reviews

code-quality.de @FrankS

Die richtige Motivation ist wichtig

Zwei Wege für Code ReviewsZwei Wege für Code Reviews

Erwartungen und die RealitätErwartungen und die Realität

Ein verstecktes ProblemEin verstecktes Problem

code-quality.de @FrankS

Warum will man Code Reviews?

code-quality.de @FrankS

Die Ergebnisse sehen etwas anders aus...

code-quality.de @FrankS

Es gibt da noch etwas...

Zwei Wege für Code ReviesZwei Wege für Code Revies

Erwartungen und die RealitätErwartungen und die Realität

Ein verstecktes ProblemEin verstecktes Problem

code-quality.de @FrankS

Kommt das bekannt vor?

Unstrukturiert und ohne konkrete ZieleUnstrukturiert und ohne konkrete Ziele

Erfolg ist nicht nachvollziehbarErfolg ist nicht nachvollziehbar

Jeder hat seinen LieblingsreviewerJeder hat seinen Lieblingsreviewer

code-quality.de @FrankS

Das Problem:

Ergebnisse basieren auf der Erfahrung,Zeit(-druck) und Motivation des Reviewers.

Ergebnisse basieren auf der Erfahrung,Zeit(-druck) und Motivation des Reviewers.

code-quality.de @FrankS

Nun ja...

code-quality.de @FrankS

Mal schauen, was wir tun können

Eine Übersicht über Code ReviewsEine Übersicht über Code Reviews

Code Reviews effektiver machenCode Reviews effektiver machen

code-quality.de @FrankS

Vergessen wir die tools erst einmal

Gemeinsame Denkweise etablierenGemeinsame Denkweise etablieren

Den richtigen Fokus setzenDen richtigen Fokus setzen

Eine Checkliste verwendenEine Checkliste verwenden

code-quality.de @FrankS

Team Reviews sind eine gute Grundlage

code-quality.de @FrankS

Es kommt Bewegung ins Team

Wissen im Team teilenWissen im Team teilen

Unstimmigkeiten und Missverständnisse aufdeckenUnstimmigkeiten und Missverständnisse aufdecken

Gemeinsames Verständnis von Qualität erzeugenGemeinsames Verständnis von Qualität erzeugen

code-quality.de @FrankS

Das Ziel im Blick behalten

Gemeinsame Denkweise etablierenGemeinsame Denkweise etablieren

Den richtigen Fokus setzenDen richtigen Fokus setzen

Eine Checkliste verwendenEine Checkliste verwenden

code-quality.de @FrankS

Was wird geprüft?

Metriken zur Code QualitätMetriken zur Code Qualität

Code Verbesserungen und VerständlichkeitCode Verbesserungen und Verständlichkeit

code-quality.de @FrankS

Muss der Code verstanden werden?

code-quality.de @FrankS

Lesbar und verständlich

„Nur wenn man den Code versteht,kann man auch die Fehler finden.“

„Nur wenn man den Code versteht,kann man auch die Fehler finden.“

code-quality.de @FrankS

Ein kleiner, aber wichtiger Unterschied

Coding Style GuideCoding Style Guide

Coding GuidelineCoding Guideline

code-quality.de @FrankS

Was gehört in eine Guideline?

Alles was man nicht automatisiert validieren kann!Alles was man nicht automatisiert validieren kann!

code-quality.de @FrankS

Guidelines sind ein guter Anfang

Gemeinsame Denkweise etablierenGemeinsame Denkweise etablieren

Den richtigen Fokus setzenDen richtigen Fokus setzen

Eine Checkliste verwendenEine Checkliste verwenden

code-quality.de @FrankS

Eine Checkliste hilft für Reviews!

code-quality.de @FrankS

Beim erstellen der Checkliste...

Jede Regel sollte so konkret wie möglich seinJede Regel sollte so konkret wie möglich sein

Beim erstellen das Team mit einbeziehenBeim erstellen das Team mit einbeziehen

Die Regeln immer mal wieder überprüfenDie Regeln immer mal wieder überprüfen

code-quality.de @FrankS

Ein paar Beispiele:

Funktioniert der Code? Erfüllt er diegeplante Funktion? Ist die Logik korrekt?

Funktioniert der Code? Erfüllt er diegeplante Funktion? Ist die Logik korrekt?

Kategorie: Allgemein

code-quality.de @FrankS

Ein paar Beispiele:

Gibt es überflüssigen oder doppelten Code?Gibt es überflüssigen oder doppelten Code?

Kategorie: Allgemein

code-quality.de @FrankS

Ein paar Beispiele:

Gibt es (überflüssigen) auskommentierten Code?Gibt es (überflüssigen) auskommentierten Code?

Kategorie: Allgemein

code-quality.de @FrankS

Ein paar Beispiele:

Werden alle Dateneingaben überprüft?(z.B. Typ, Länge, Format, Wertebereich, etc.)

Werden alle Dateneingaben überprüft?(z.B. Typ, Länge, Format, Wertebereich, etc.)

Kategorie: Sicherheit

code-quality.de @FrankS

Ein paar Beispiele:

Werden invalide Parameterwerte abgehandelt?Werden invalide Parameterwerte abgehandelt?

Kategorie: Sicherheit

code-quality.de @FrankS

Ein paar Beispiele:

Sind alle Sonderfälle, bzw. spezielles Verhalten beschrieben?

Sind alle Sonderfälle, bzw. spezielles Verhalten beschrieben?

Kategorie: Dokumentation

code-quality.de @FrankS

Ein paar Beispiele:

Ist der Code testbar? Sprich: nicht zu vieleoder versteckte Abhängigkeiten.

Ist der Code testbar? Sprich: nicht zu vieleoder versteckte Abhängigkeiten.

Kategorie: Testing

code-quality.de @FrankS

Ein paar Beispiele:

Testen die Unit Tests auch wirklich,dass der Code die geplante Funktion erfüllt?

Testen die Unit Tests auch wirklich,dass der Code die geplante Funktion erfüllt?

Kategorie: Testing

code-quality.de @FrankS

...und einiges mehr!

Sprachspezifische EigenheitenSprachspezifische Eigenheiten

An euer Team und Projekt angepasstAn euer Team und Projekt angepasst

Nicht zu groß werden lassen!Nicht zu groß werden lassen!

code-quality.de @FrankS

Checklisten machen Reviews effektiver!

code-quality.de @FrankS

Also...

Schafft eine gemeinsames Verständnis für QualitätSchafft eine gemeinsames Verständnis für Qualität

Erstellt Guidelines und eine ChecklisteErstellt Guidelines und eine Checkliste

Code Reviews müssen Teil des Prozesses seinCode Reviews müssen Teil des Prozesses sein

code-quality.de @FrankS

Macht Code Reviews – aber effektive!

„Peer code reviews are the single biggestthing you can do to improve your code.“„Peer code reviews are the single biggestthing you can do to improve your code.“

Jeff Atwood – @codinghorror

code-quality.de @FrankS

Fragen? Feedback?

code-quality.de @FrankS

Links● https://blog.codinghorror.com/code-reviews-just-do-it/● http://blog.codeclimate.com/blog/2013/10/09/unexpected-outcomes-of-code-reviews/● http://blog.fogcreek.com/increase-defect-detection-with-our-code-review-checklist-example/