03.06.2015 - Schneller, Billiger, Besser - Effektiver Einsatz von Code-Reviews Dev Day in Dresden 27. Mai 2015 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 1.3 www.oio.de [email protected] Ihr Sprecher Thorsten Maier Trainer, Berater, Entwickler Schwerpunkte Menschen Prozesse Architektur Code-Qualität © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 2 1 03.06.2015 Agenda Einsteiger Code-Reviews? Noch nie gehört! Skeptiker Wir haben es ausprobiert. Es funktioniert nicht! Profis Wir setzen Code-Reviews bereits erfolgreich ein und wollen noch besser werden. © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 3 Agenda Einsteiger Skeptiker Warum CodeReviews ? Do it! Die richtigen Tools Profis © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 4 2 03.06.2015 Kennen Sie das? „Das ist historisch gewachsen.“ © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 5 Oder das? „Das wollten wir schon lange refactoren.“ © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 6 3 03.06.2015 …noch ein Klassiker „Thomas ist leider gerade im Urlaub“ © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 7 Es bleibt nie Zeit für das große Refactoring Code-Reviews als kontinuierliche Lösung © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 8 4 03.06.2015 Bugs finden © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 9 Wissen © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 10 5 03.06.2015 © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 11 Zeugnis _______ _______ ______ _____ _______ 1+ Anerkennung © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 12 6 03.06.2015 Qualität kostet Geld… 120 Entwicklungskosten in % 15 100 80 60 100 105 ohne Code-Review mit Code-Review Code-Review Entwicklung 40 20 0 © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 13 Langfristige Kostenentwicklung Wissen ohne Code-Review © 2015 Orientation in Objects GmbH Bugfixing Code-Review Entwicklung mit Code-Review Effektiver Einsatz von Code-Reviews 14 7 03.06.2015 Qualität kostet Anstrengung… Warum testen? Vertrauen Sie Ihrem eigenen Code nicht? © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 15 Code-Reviews für alle? Projekt oder Produkt © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 16 8 03.06.2015 Agenda Einsteiger Skeptiker Warum CodeReviews ? Do it! Die richtigen Tools Profis © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 17 Formale Inspektion nach Michael Fagan (1976) Planung Manager Überblick Vorbereitung Moderator © 2015 Orientation in Objects GmbH Inspektion Autor Nacharbeit Prüfer Effektiver Einsatz von Code-Reviews Nachverfolgung Schriftführer 18 9 03.06.2015 Formale Inspektion nach Michael Fagan (1976) Planung "Currently 1% of our code is inspected“ Überblick Vorbereitung Inspektion Nacharbeit Nachverfolgung "We believe by the end of the year we can get it up to 7%." Manager Moderator Autor Prüfer Schriftführer © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 19 © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 20 10 03.06.2015 Wann? CodeReview feature-x CodeReview feature-z „Nach jedem Feature / Bugfix“ © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 21 Wer? Klickt Prüft Einstiegspunkte Hinterfragt Hinweise Erläuterungen Reviewer Code-Autor © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 22 11 03.06.2015 Ein gemeinsames Ziel „Wir wollen unsere Anwendung gemeinsam besser machen“ © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 23 Stelle Fragen Was war der Grund für dein hier gewähltes Vorgehen? Das ist falsch © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 24 12 03.06.2015 Nicht zu viel … und nicht zu lange 200 – 400 Zeilen 1 – 2 Stunden Gefundene Fehler Dauer des Reviews http://support.smartbear.com/resources/cc/book/code-review-cisco-case-study.pdf © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 25 Effektiver Einsatz von Code-Reviews 26 Do it!!! © 2015 Orientation in Objects GmbH 13 03.06.2015 Qualität kostet Geld… und deshalb messen! © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 27 Checkliste Sinnvolle Namen? Klare Struktur? Korrekte Verwendung von Datentypen? Kommentare? Code smells? Tests vorhanden? Wohldefinierte Schnittstellen? Exception-Handling? I18N? Typische Programmier-Fehler? © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 28 14 03.06.2015 Guidelines • Sun Java Code Conventions • Clean Code • Tool-Standard-Konfiguration – – – – Eclipse: Errors, Warnings und Formatter Findbugs PMD Checkstyle © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 29 Agenda Einsteiger Skeptiker Warum CodeReviews ? Do it! Die richtigen Tools Profis © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 30 15 03.06.2015 © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 31 Effektiver Einsatz von Code-Reviews 32 Versionsverwaltung & Diff-Tool © 2015 Orientation in Objects GmbH 16 03.06.2015 Gute Vorbereitung ist die halbe Miete © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 33 Effektiver Einsatz von Code-Reviews 34 Alles in Ordnung? © 2015 Orientation in Objects GmbH 17 03.06.2015 FindBugs © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 35 Effektiver Einsatz von Code-Reviews 36 Alles in Ordnung? © 2015 Orientation in Objects GmbH 18 03.06.2015 Schichtenarchitektur? Controller ServiceImpl © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 37 Automatische Architektur-Tests Controller ServiceImpl DaoImpl https://github.com/thorstenmaier/architecture-layer-check/ © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 38 19 03.06.2015 Wünsche an ein Code-Review-Tool © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 39 Atlassian Stash Git 1. Änderung 2. Build erfolgreich Issue-Tracker Jira CI-Server Bamboo 3b. 3a. Pull-Request Autor 4a. Status-Übergang © 2015 Orientation in Objects GmbH Repo-Verwaltung Stash Effektiver Einsatz von Code-Reviews 4b. Pull 40 20 03.06.2015 Atlassian Stash © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 41 Fazit Einsteiger Wissen Skeptiker Be prepared Profis KISS © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 42 21 03.06.2015 Mehr von OIO zum Thema… • Schulung: Refactoring Workshop • http://www.oio.de/seminar/methodik-prozess-management-soft-skills/training-javakurs-refactoring-schulung.htm • Schulung: Git kompakt • http://www.oio.de/git-kompakt-schulung-versionsverwaltung-seminar-dvcstraining.htm • Schulung: Versionsverwaltung mit Git • http://www.oio.de/workflows-schulung-git-seminar-dvcs-training.htm • Schulung: Atlassian Stash – Enterprise Git • http://www.oio.de/seminar/methodik-prozess-management-soft-skills/seminarstash-schulung-atlassian-enterprise-training-git-kurs.htm • Schulung: JIRA – Fachliche Administration • http://www.oio.de/seminar/methodik-prozess-management-soft-skills/seminartraining-atlassian-jira-schulung.htm © 2015 Orientation in Objects GmbH Effektiver Einsatz von Code-Reviews 43 ? ? ? ? ? ? ? ? Fragen ? Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de [email protected] 44 22 03.06.2015 Vielen Dank für ihre Aufmerksamkeit ! Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de [email protected] 23
© Copyright 2024 ExpyDoc