SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Das Kung Fu des Code Reviews
Bessere Qualität mit Git und Gerrit
Christian Erhardt / Sebastian Main
prosoft EDV-Lösungen GmbH & Co. KG
Herbstcampus 2014 – Titel des Vortrags 2
Agenda
• Grundsätzliches zum Codereview
• Gerrit installieren
• Gerrit benutzen
• Ausblick
Herbstcampus 2014 – Titel des Vortrags 3
Herbstcampus 2014 – Titel des Vortrags 4
Wozu Codereview?
• Steigerung der Qualität
• Verbesserung der Kommunikation
• Fehler frühzeitig erkennen
• Sicherungsnetz für den Entwickler
• Continuous Deployment
Herbstcampus 2014 – Titel des Vortrags 5
• „Wir haben die Zeit nicht!“
• „Ich programmiere so gut, ich brauche keinen
Review!“
• „Mein Code ist besser als Dein Code!“
• „Das hat in meinem Code nichts verloren!“
Entwickler sind Diven
Codereview funktioniert nicht!
Herbstcampus 2014 – Titel des Vortrags 6
• Verbindliche, dokumentierte Regeln
• Styleguide
• Architektur
• Controls
• Review nicht auf Code im Haupt-Zweig (master)
• Kommunikation!
• Während des Reviews
• Reviewer untereinander
• Frustfaktor so gering wie möglich halten
• Tools
• Buildserver
• Automatisierung
Voraussetzungen
Herbstcampus 2014 – Titel des Vortrags 7
• Basiert auf Java (Windows / Linux)
• Open Source
• Quellcodeverwaltung Git
• Wird hauptsächlich von Google entwickelt und für
die Entwicklung von Android eingesetzt
• Integrierter Git Server
• Ausgereiftes Berechtigungssystem
Gerrit
Herbstcampus 2014 – Titel des Vortrags 8
Ablauf
Haupt-Zweig (master)
Change Review
Herbstcampus 2014 – Titel des Vortrags 9
• Installation
• Gerrit installieren
• Projekt hochladen
• Benutzer einrichten
• Benutzung
• Eine Code Review mit Gerrit
• Anbindung von Jenkins an Gerrit
Präsentation
Herbstcampus 2014 – Titel des Vortrags 10
• Anbindung eines Buildservers als erste „Verify
Instanz“
• Einbinden von QA in den Entwicklungsablauf
• Automatisches Deployment von Testversionen
Wohin von hier?
Herbstcampus 2014 – Titel des Vortrags 11
• windows.developer 11.2013
Mit vier Augen
• windows.developer 12.2013
Erfolgreiche Reviews 2
• Gerrit
https://code.google.com/p/gerrit/wiki/Background
• Jenkins
http://jenkins-ci.org
Links / Quellen
Vielen Dank!
Christian Erhardt / Sebastian Main
prosoft EDV-Lösungen GmbH & Co. KG
Herbstcampus 2014 – Titel des Vortrags 13
Firma
• Hier können Sie, wenn Sie möchten, Informationen
über Ihre Firma einfügen

Weitere ähnliche Inhalte

Was ist angesagt?

Das funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPagesDas funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPages
Christian Güdemann
 

Was ist angesagt? (20)

Cross Plattform Apps mit Visual Studio und Apache Cordova
Cross Plattform Apps mit Visual Studio und Apache CordovaCross Plattform Apps mit Visual Studio und Apache Cordova
Cross Plattform Apps mit Visual Studio und Apache Cordova
 
Composer und TYPO3
Composer und TYPO3Composer und TYPO3
Composer und TYPO3
 
Warum gRPC? – und wie in Python implementieren?
Warum gRPC? – und wie in Python implementieren?Warum gRPC? – und wie in Python implementieren?
Warum gRPC? – und wie in Python implementieren?
 
Build Automation for Mobile
Build Automation for MobileBuild Automation for Mobile
Build Automation for Mobile
 
Quo vadis DevOps
Quo vadis DevOpsQuo vadis DevOps
Quo vadis DevOps
 
Continous Deployment - Schneller entwickeln
Continous Deployment - Schneller entwickelnContinous Deployment - Schneller entwickeln
Continous Deployment - Schneller entwickeln
 
TYPO3 GitLab CI
TYPO3 GitLab CITYPO3 GitLab CI
TYPO3 GitLab CI
 
Gitlab
GitlabGitlab
Gitlab
 
Dokumentation in agilen Projekten - WebMontag Edition
Dokumentation in agilen Projekten - WebMontag EditionDokumentation in agilen Projekten - WebMontag Edition
Dokumentation in agilen Projekten - WebMontag Edition
 
Gtug nov 2010
Gtug nov 2010Gtug nov 2010
Gtug nov 2010
 
Zuehlke Camp 2017: Chef vs Ansible session
Zuehlke Camp 2017: Chef vs Ansible sessionZuehlke Camp 2017: Chef vs Ansible session
Zuehlke Camp 2017: Chef vs Ansible session
 
Das funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPagesDas funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPages
 
CI und Android - Wie geht das? MTC2010
CI und Android - Wie geht das? MTC2010CI und Android - Wie geht das? MTC2010
CI und Android - Wie geht das? MTC2010
 
Deployment
DeploymentDeployment
Deployment
 
Automatisierte Entwickler VMs -- "works on my machine" zählt nicht mehr ;-)
Automatisierte Entwickler VMs -- "works on my machine" zählt nicht mehr ;-)Automatisierte Entwickler VMs -- "works on my machine" zählt nicht mehr ;-)
Automatisierte Entwickler VMs -- "works on my machine" zählt nicht mehr ;-)
 
Version management mit Git und Github
Version management mit Git und Github Version management mit Git und Github
Version management mit Git und Github
 
XPages From Zero To Hero
XPages From Zero To HeroXPages From Zero To Hero
XPages From Zero To Hero
 
Eine Stunde was mit Api First!
Eine Stunde was mit Api First!Eine Stunde was mit Api First!
Eine Stunde was mit Api First!
 
Versionierung mit GIT
Versionierung mit GITVersionierung mit GIT
Versionierung mit GIT
 
Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014
 

Andere mochten auch

Andere mochten auch (7)

Design im Immer- und Ueberall-Web
Design im Immer- und Ueberall-WebDesign im Immer- und Ueberall-Web
Design im Immer- und Ueberall-Web
 
Effizente Entwicklung für verteilte Projekte
Effizente Entwicklung für verteilte ProjekteEffizente Entwicklung für verteilte Projekte
Effizente Entwicklung für verteilte Projekte
 
Eclipse, Git und Gerrit
Eclipse, Git und GerritEclipse, Git und Gerrit
Eclipse, Git und Gerrit
 
Week2a
Week2aWeek2a
Week2a
 
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-CommunityGit & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community
 
Embedding Jaspersoft into your PHP application
Embedding Jaspersoft into your PHP applicationEmbedding Jaspersoft into your PHP application
Embedding Jaspersoft into your PHP application
 
Web-Branding in der Usability-Diktatur
Web-Branding in der Usability-DiktaturWeb-Branding in der Usability-Diktatur
Web-Branding in der Usability-Diktatur
 

Ähnlich wie Das Kung Fu des Code Reviews

JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013
Oliver Zeigermann
 

Ähnlich wie Das Kung Fu des Code Reviews (20)

Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
 
Tipps & Tricks für Erweiterungsentwickler - JoomlaDay Deutschland 2014 - Köln
Tipps & Tricks für Erweiterungsentwickler - JoomlaDay Deutschland 2014 - KölnTipps & Tricks für Erweiterungsentwickler - JoomlaDay Deutschland 2014 - Köln
Tipps & Tricks für Erweiterungsentwickler - JoomlaDay Deutschland 2014 - Köln
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit Rails
 
Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014
 
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftSharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
 
Cusy Developer-Baukasten
Cusy Developer-BaukastenCusy Developer-Baukasten
Cusy Developer-Baukasten
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
 
Kontinuierliche Überprüfung der Code-Qualität mit Scrutinizer
Kontinuierliche Überprüfung der Code-Qualität mit ScrutinizerKontinuierliche Überprüfung der Code-Qualität mit Scrutinizer
Kontinuierliche Überprüfung der Code-Qualität mit Scrutinizer
 
How to speed up Spring Integration Tests
How to speed up Spring Integration TestsHow to speed up Spring Integration Tests
How to speed up Spring Integration Tests
 
Quo vadis-devops-nuernberg
Quo vadis-devops-nuernbergQuo vadis-devops-nuernberg
Quo vadis-devops-nuernberg
 
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
 
Unit Testing einer Zend-Framework 2 Anwendung
Unit Testing einer Zend-Framework 2 AnwendungUnit Testing einer Zend-Framework 2 Anwendung
Unit Testing einer Zend-Framework 2 Anwendung
 
Integration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-PipelineIntegration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-Pipeline
 
DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...
DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...
DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013
 
Scrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für ProgrammiererScrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für Programmierer
 
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
 
Ant Maven
Ant MavenAnt Maven
Ant Maven
 
USEEDS° :: Responsive Design im Projektalltag bei mobile.de
USEEDS° :: Responsive Design im Projektalltag bei mobile.deUSEEDS° :: Responsive Design im Projektalltag bei mobile.de
USEEDS° :: Responsive Design im Projektalltag bei mobile.de
 
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzNode.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
 

Das Kung Fu des Code Reviews

  • 1. Das Kung Fu des Code Reviews Bessere Qualität mit Git und Gerrit Christian Erhardt / Sebastian Main prosoft EDV-Lösungen GmbH & Co. KG
  • 2. Herbstcampus 2014 – Titel des Vortrags 2 Agenda • Grundsätzliches zum Codereview • Gerrit installieren • Gerrit benutzen • Ausblick
  • 3. Herbstcampus 2014 – Titel des Vortrags 3
  • 4. Herbstcampus 2014 – Titel des Vortrags 4 Wozu Codereview? • Steigerung der Qualität • Verbesserung der Kommunikation • Fehler frühzeitig erkennen • Sicherungsnetz für den Entwickler • Continuous Deployment
  • 5. Herbstcampus 2014 – Titel des Vortrags 5 • „Wir haben die Zeit nicht!“ • „Ich programmiere so gut, ich brauche keinen Review!“ • „Mein Code ist besser als Dein Code!“ • „Das hat in meinem Code nichts verloren!“ Entwickler sind Diven Codereview funktioniert nicht!
  • 6. Herbstcampus 2014 – Titel des Vortrags 6 • Verbindliche, dokumentierte Regeln • Styleguide • Architektur • Controls • Review nicht auf Code im Haupt-Zweig (master) • Kommunikation! • Während des Reviews • Reviewer untereinander • Frustfaktor so gering wie möglich halten • Tools • Buildserver • Automatisierung Voraussetzungen
  • 7. Herbstcampus 2014 – Titel des Vortrags 7 • Basiert auf Java (Windows / Linux) • Open Source • Quellcodeverwaltung Git • Wird hauptsächlich von Google entwickelt und für die Entwicklung von Android eingesetzt • Integrierter Git Server • Ausgereiftes Berechtigungssystem Gerrit
  • 8. Herbstcampus 2014 – Titel des Vortrags 8 Ablauf Haupt-Zweig (master) Change Review
  • 9. Herbstcampus 2014 – Titel des Vortrags 9 • Installation • Gerrit installieren • Projekt hochladen • Benutzer einrichten • Benutzung • Eine Code Review mit Gerrit • Anbindung von Jenkins an Gerrit Präsentation
  • 10. Herbstcampus 2014 – Titel des Vortrags 10 • Anbindung eines Buildservers als erste „Verify Instanz“ • Einbinden von QA in den Entwicklungsablauf • Automatisches Deployment von Testversionen Wohin von hier?
  • 11. Herbstcampus 2014 – Titel des Vortrags 11 • windows.developer 11.2013 Mit vier Augen • windows.developer 12.2013 Erfolgreiche Reviews 2 • Gerrit https://code.google.com/p/gerrit/wiki/Background • Jenkins http://jenkins-ci.org Links / Quellen
  • 12. Vielen Dank! Christian Erhardt / Sebastian Main prosoft EDV-Lösungen GmbH & Co. KG
  • 13. Herbstcampus 2014 – Titel des Vortrags 13 Firma • Hier können Sie, wenn Sie möchten, Informationen über Ihre Firma einfügen

Hinweis der Redaktion

  1. Wer hat Erfahrung mit Git Wer verwendet Code Review Wer will Code Review verwenden
  2. Kurze Exkursion in die Leidensgeschichte bei prosoft: Einsatz eines Buildservers um herauszufinden wann man überhaupt pullen kann Jeder programmiert was er will und wie er will
  3. Während des Reviews kann der Entwickler etwas anderes machen