SlideShare ist ein Scribd-Unternehmen logo
Concepts of Code Quality
Maximilian Berghoff Andreas Haberberger
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Quelle:http://xkcd.com/844/
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Was ist CodeQuality?
Alle Maßnahmen, die dazu führen, dass Code
wartbar
verständlich
zugänglich
erweiterbar
austauschbar
bleibt.
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Also Maßnahmen, die die
Lebensdauer
und damit den
Wert
des Codes erhöhen.
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
1. Qualität schaffen
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Source Code Management
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Linting
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Testing
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Unit Tests
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Wann läuft mein Unittest durch?
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Wann bekomme ich dann ein gutes Testergebnis?
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
...und wie schreibe ich “testbaren” Code?
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Test Driven Development
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Integration Tests
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
e2e
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Verteilung
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Testen an der Domain
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Cucumber/Gherkin
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Ubiquitous Language
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Business Need: Edit users
In order to have customer support an Admin want's to edit a user.
Scenario: Edit user data on behalf of a customer
Given a user with email "maximilian.berghoff@mayflower.de"
When i change the username to "ElectricMaxxx"
Then the user profile should display the username "ElectricMaxxx"
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Behavior Driven
Development
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
“Sauberen” Code schreiben
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Robert C. Martin: Clean Code. A Handbook of Agile Software Craftsmanship. Prentice Hall, Upper Saddle River NJ u. a. 2008
Agile Methoden
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
2. Qualität messen
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Indikatoren
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Code Metriken
(objektive Qualitätsmaßstäbe)
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
subjektive Qualitätsmaßstäbe
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Agile Methoden
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
3. Qualität
sicherstellen
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Tools
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Metriken
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Metriken
Scrutinizer Sonarqube
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Build
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Build
Travis CI
shippableTeamcity
Jenkins
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Bamboo
Code Review
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Code Review
Upsource
Github
Crucible
Gerrit Code Review
Gitlab
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Stash/Bitbucket
Verständlicher Code
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Deploy Workflow
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Agile Methoden
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Questions ?
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
- Maximilian.Berghoff@mayflower.de
- @ElectricMaxxx
- https://github.com/ElectricMaxxx
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Kontakt
- Andreas.Haberberger@mayflower.de
- @A_Haberberger
- https://github.com/ahaberberger
Developer Camp Würzburg
16.+17.09.2016
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
https://developercamp.io/
- Slides: “The pyramid is a lie”
- Blog: “Testen an der Domaine”
Metrik:
- Scrutinizer: https://scrutinizer-ci.com
- Sonarqube: http://www.sonarqube.org/
Build:
- Travis: https://travis-ci.org/
- Shippable: https://app.shippable.com/
- Teamcity: https://www.jetbrains.com/teamcity/
- Bamboo: https://de.atlassian.com/software/bamboo
- Jenkins: https://jenkins.io/
Code Review
- Crucible: https://de.atlassian.com/software/crucible
- Upsource: https://www.jetbrains.com/upsource/
- Github: Github
- Gitlab: https://about.gitlab.com/
- Gerit: https://www.gerritcodereview.com/
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Links und Quellen
Thank You
Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg

Weitere ähnliche Inhalte

Andere mochten auch

Spruch z 2014_2
Spruch z 2014_2Spruch z 2014_2
Spruch z 2014_2
SpruchZ
 
Webinar Neues von der re:invent 2013 Teil 2: Kinesis, AppStream, WorkSpaces
Webinar Neues von der re:invent 2013 Teil 2: Kinesis, AppStream, WorkSpacesWebinar Neues von der re:invent 2013 Teil 2: Kinesis, AppStream, WorkSpaces
Webinar Neues von der re:invent 2013 Teil 2: Kinesis, AppStream, WorkSpaces
AWS Germany
 
Sind MOOCs die Zukunft der Weiterbildung?
Sind MOOCs die Zukunft der Weiterbildung?Sind MOOCs die Zukunft der Weiterbildung?
Sind MOOCs die Zukunft der Weiterbildung?
Andreas Wittke
 
El avivamiernto que_cambio_un_pais
El avivamiernto que_cambio_un_paisEl avivamiernto que_cambio_un_pais
El avivamiernto que_cambio_un_pais
Agencia Alianza Misionera
 
Elproyectomatriz2007 informeglobal2000paraelpresidente-100618041858-phpapp02
Elproyectomatriz2007 informeglobal2000paraelpresidente-100618041858-phpapp02Elproyectomatriz2007 informeglobal2000paraelpresidente-100618041858-phpapp02
Elproyectomatriz2007 informeglobal2000paraelpresidente-100618041858-phpapp02
Jordi Garrigosa Ayuso
 
Web4
Web4Web4
Midete
MideteMidete
Midete
RedesCemefi
 
Urteil lg frankfurt am main vom 02.11.2011
Urteil lg frankfurt am main vom 02.11.2011Urteil lg frankfurt am main vom 02.11.2011
Urteil lg frankfurt am main vom 02.11.2011SpruchZ
 
Die Jute Bonustasche
Die Jute BonustascheDie Jute Bonustasche
Die Jute Bonustasche
livingResponsible
 
Amepar
AmeparAmepar
Amepar
RedesCemefi
 
Medita México
Medita MéxicoMedita México
Medita México
RedesCemefi
 
Kompetenz fuer-die-erfahrene-assistenz-social media-shortversion
Kompetenz fuer-die-erfahrene-assistenz-social media-shortversionKompetenz fuer-die-erfahrene-assistenz-social media-shortversion
Kompetenz fuer-die-erfahrene-assistenz-social media-shortversion
Sabine Flechner
 
Formato proyecto docente inserciòn de tic
Formato proyecto docente inserciòn de ticFormato proyecto docente inserciòn de tic
Formato proyecto docente inserciòn de tic
JOÃO Xödo
 
Spruchverfahren aktuell (SpruchZ) Nr. 20/2015
Spruchverfahren aktuell (SpruchZ) Nr. 20/2015Spruchverfahren aktuell (SpruchZ) Nr. 20/2015
Spruchverfahren aktuell (SpruchZ) Nr. 20/2015
SpruchZ
 
Cual.es.tu.pensamiento
Cual.es.tu.pensamientoCual.es.tu.pensamiento
Cual.es.tu.pensamiento
Jordi Garrigosa Ayuso
 
Informe Actividades Red Infancia y Adolescencia 2012
Informe Actividades Red Infancia y Adolescencia 2012Informe Actividades Red Infancia y Adolescencia 2012
Informe Actividades Red Infancia y Adolescencia 2012
RedesCemefi
 
La pelota de sofia
La pelota de sofiaLa pelota de sofia
La pelota de sofia
Julian Benitez
 
Suma por la Eucación (CCAE)
Suma por la Eucación (CCAE)Suma por la Eucación (CCAE)
Suma por la Eucación (CCAE)
RedesCemefi
 
Klöckner & Co - Geschäftsbericht 2012
Klöckner & Co - Geschäftsbericht 2012Klöckner & Co - Geschäftsbericht 2012
Klöckner & Co - Geschäftsbericht 2012Klöckner & Co SE
 
Training Online Marketing & Social Media für Trainer & Coaches - Auszug
Training Online Marketing & Social Media für Trainer & Coaches - AuszugTraining Online Marketing & Social Media für Trainer & Coaches - Auszug
Training Online Marketing & Social Media für Trainer & Coaches - Auszug
Sabine Flechner
 

Andere mochten auch (20)

Spruch z 2014_2
Spruch z 2014_2Spruch z 2014_2
Spruch z 2014_2
 
Webinar Neues von der re:invent 2013 Teil 2: Kinesis, AppStream, WorkSpaces
Webinar Neues von der re:invent 2013 Teil 2: Kinesis, AppStream, WorkSpacesWebinar Neues von der re:invent 2013 Teil 2: Kinesis, AppStream, WorkSpaces
Webinar Neues von der re:invent 2013 Teil 2: Kinesis, AppStream, WorkSpaces
 
Sind MOOCs die Zukunft der Weiterbildung?
Sind MOOCs die Zukunft der Weiterbildung?Sind MOOCs die Zukunft der Weiterbildung?
Sind MOOCs die Zukunft der Weiterbildung?
 
El avivamiernto que_cambio_un_pais
El avivamiernto que_cambio_un_paisEl avivamiernto que_cambio_un_pais
El avivamiernto que_cambio_un_pais
 
Elproyectomatriz2007 informeglobal2000paraelpresidente-100618041858-phpapp02
Elproyectomatriz2007 informeglobal2000paraelpresidente-100618041858-phpapp02Elproyectomatriz2007 informeglobal2000paraelpresidente-100618041858-phpapp02
Elproyectomatriz2007 informeglobal2000paraelpresidente-100618041858-phpapp02
 
Web4
Web4Web4
Web4
 
Midete
MideteMidete
Midete
 
Urteil lg frankfurt am main vom 02.11.2011
Urteil lg frankfurt am main vom 02.11.2011Urteil lg frankfurt am main vom 02.11.2011
Urteil lg frankfurt am main vom 02.11.2011
 
Die Jute Bonustasche
Die Jute BonustascheDie Jute Bonustasche
Die Jute Bonustasche
 
Amepar
AmeparAmepar
Amepar
 
Medita México
Medita MéxicoMedita México
Medita México
 
Kompetenz fuer-die-erfahrene-assistenz-social media-shortversion
Kompetenz fuer-die-erfahrene-assistenz-social media-shortversionKompetenz fuer-die-erfahrene-assistenz-social media-shortversion
Kompetenz fuer-die-erfahrene-assistenz-social media-shortversion
 
Formato proyecto docente inserciòn de tic
Formato proyecto docente inserciòn de ticFormato proyecto docente inserciòn de tic
Formato proyecto docente inserciòn de tic
 
Spruchverfahren aktuell (SpruchZ) Nr. 20/2015
Spruchverfahren aktuell (SpruchZ) Nr. 20/2015Spruchverfahren aktuell (SpruchZ) Nr. 20/2015
Spruchverfahren aktuell (SpruchZ) Nr. 20/2015
 
Cual.es.tu.pensamiento
Cual.es.tu.pensamientoCual.es.tu.pensamiento
Cual.es.tu.pensamiento
 
Informe Actividades Red Infancia y Adolescencia 2012
Informe Actividades Red Infancia y Adolescencia 2012Informe Actividades Red Infancia y Adolescencia 2012
Informe Actividades Red Infancia y Adolescencia 2012
 
La pelota de sofia
La pelota de sofiaLa pelota de sofia
La pelota de sofia
 
Suma por la Eucación (CCAE)
Suma por la Eucación (CCAE)Suma por la Eucación (CCAE)
Suma por la Eucación (CCAE)
 
Klöckner & Co - Geschäftsbericht 2012
Klöckner & Co - Geschäftsbericht 2012Klöckner & Co - Geschäftsbericht 2012
Klöckner & Co - Geschäftsbericht 2012
 
Training Online Marketing & Social Media für Trainer & Coaches - Auszug
Training Online Marketing & Social Media für Trainer & Coaches - AuszugTraining Online Marketing & Social Media für Trainer & Coaches - Auszug
Training Online Marketing & Social Media für Trainer & Coaches - Auszug
 

Mehr von Maximilian Berghoff

Sustainability in der deploy pipeline
Sustainability in der deploy pipelineSustainability in der deploy pipeline
Sustainability in der deploy pipeline
Maximilian Berghoff
 
Development is for future
Development is for futureDevelopment is for future
Development is for future
Maximilian Berghoff
 
Development is for future
Development is for futureDevelopment is for future
Development is for future
Maximilian Berghoff
 
Natural language understanding meets php php ruhr 2018
Natural language understanding meets php   php ruhr 2018Natural language understanding meets php   php ruhr 2018
Natural language understanding meets php php ruhr 2018
Maximilian Berghoff
 
NLU meets PHP
NLU meets PHPNLU meets PHP
NLU meets PHP
Maximilian Berghoff
 
Angular Mini Hackathon Code Talks 2019
Angular Mini Hackathon Code Talks 2019Angular Mini Hackathon Code Talks 2019
Angular Mini Hackathon Code Talks 2019
Maximilian Berghoff
 
Search engine optimization for symfony developers
Search engine optimization for symfony developersSearch engine optimization for symfony developers
Search engine optimization for symfony developers
Maximilian Berghoff
 
Introduction into FrOSCon PHP Track
Introduction into FrOSCon PHP TrackIntroduction into FrOSCon PHP Track
Introduction into FrOSCon PHP Track
Maximilian Berghoff
 
Angular Workshop FrOSCon 2018
Angular Workshop  FrOSCon 2018Angular Workshop  FrOSCon 2018
Angular Workshop FrOSCon 2018
Maximilian Berghoff
 
API Plattform - A Backend in Minutes
API Plattform - A Backend in MinutesAPI Plattform - A Backend in Minutes
API Plattform - A Backend in Minutes
Maximilian Berghoff
 
The content manager loves the tree
The content manager loves the treeThe content manager loves the tree
The content manager loves the tree
Maximilian Berghoff
 
Aspects Of Code Quality meetup
Aspects Of Code Quality   meetupAspects Of Code Quality   meetup
Aspects Of Code Quality meetup
Maximilian Berghoff
 
Reactive Javascript - FrOSCon - 2016
Reactive Javascript - FrOSCon - 2016Reactive Javascript - FrOSCon - 2016
Reactive Javascript - FrOSCon - 2016
Maximilian Berghoff
 
Extending a symfony application by cms features
Extending a symfony application by cms featuresExtending a symfony application by cms features
Extending a symfony application by cms features
Maximilian Berghoff
 
Mit dem API ins CMS
Mit dem API ins CMSMit dem API ins CMS
Mit dem API ins CMS
Maximilian Berghoff
 
Reactive java script mit rxjs basta! 2016
Reactive java script mit rxjs   basta! 2016Reactive java script mit rxjs   basta! 2016
Reactive java script mit rxjs basta! 2016
Maximilian Berghoff
 
Eine Symfony Application um CMS-Funktionen erweitern
Eine Symfony Application um CMS-Funktionen erweiternEine Symfony Application um CMS-Funktionen erweitern
Eine Symfony Application um CMS-Funktionen erweitern
Maximilian Berghoff
 
RESTing on HTTP - FrOSCon 10 - 2015-08-23
RESTing on HTTP - FrOSCon 10 - 2015-08-23RESTing on HTTP - FrOSCon 10 - 2015-08-23
RESTing on HTTP - FrOSCon 10 - 2015-08-23
Maximilian Berghoff
 
RESTing on HTTP
RESTing on HTTPRESTing on HTTP
RESTing on HTTP
Maximilian Berghoff
 
Symfony-CMF/SeoBundle - unKonf
Symfony-CMF/SeoBundle - unKonfSymfony-CMF/SeoBundle - unKonf
Symfony-CMF/SeoBundle - unKonf
Maximilian Berghoff
 

Mehr von Maximilian Berghoff (20)

Sustainability in der deploy pipeline
Sustainability in der deploy pipelineSustainability in der deploy pipeline
Sustainability in der deploy pipeline
 
Development is for future
Development is for futureDevelopment is for future
Development is for future
 
Development is for future
Development is for futureDevelopment is for future
Development is for future
 
Natural language understanding meets php php ruhr 2018
Natural language understanding meets php   php ruhr 2018Natural language understanding meets php   php ruhr 2018
Natural language understanding meets php php ruhr 2018
 
NLU meets PHP
NLU meets PHPNLU meets PHP
NLU meets PHP
 
Angular Mini Hackathon Code Talks 2019
Angular Mini Hackathon Code Talks 2019Angular Mini Hackathon Code Talks 2019
Angular Mini Hackathon Code Talks 2019
 
Search engine optimization for symfony developers
Search engine optimization for symfony developersSearch engine optimization for symfony developers
Search engine optimization for symfony developers
 
Introduction into FrOSCon PHP Track
Introduction into FrOSCon PHP TrackIntroduction into FrOSCon PHP Track
Introduction into FrOSCon PHP Track
 
Angular Workshop FrOSCon 2018
Angular Workshop  FrOSCon 2018Angular Workshop  FrOSCon 2018
Angular Workshop FrOSCon 2018
 
API Plattform - A Backend in Minutes
API Plattform - A Backend in MinutesAPI Plattform - A Backend in Minutes
API Plattform - A Backend in Minutes
 
The content manager loves the tree
The content manager loves the treeThe content manager loves the tree
The content manager loves the tree
 
Aspects Of Code Quality meetup
Aspects Of Code Quality   meetupAspects Of Code Quality   meetup
Aspects Of Code Quality meetup
 
Reactive Javascript - FrOSCon - 2016
Reactive Javascript - FrOSCon - 2016Reactive Javascript - FrOSCon - 2016
Reactive Javascript - FrOSCon - 2016
 
Extending a symfony application by cms features
Extending a symfony application by cms featuresExtending a symfony application by cms features
Extending a symfony application by cms features
 
Mit dem API ins CMS
Mit dem API ins CMSMit dem API ins CMS
Mit dem API ins CMS
 
Reactive java script mit rxjs basta! 2016
Reactive java script mit rxjs   basta! 2016Reactive java script mit rxjs   basta! 2016
Reactive java script mit rxjs basta! 2016
 
Eine Symfony Application um CMS-Funktionen erweitern
Eine Symfony Application um CMS-Funktionen erweiternEine Symfony Application um CMS-Funktionen erweitern
Eine Symfony Application um CMS-Funktionen erweitern
 
RESTing on HTTP - FrOSCon 10 - 2015-08-23
RESTing on HTTP - FrOSCon 10 - 2015-08-23RESTing on HTTP - FrOSCon 10 - 2015-08-23
RESTing on HTTP - FrOSCon 10 - 2015-08-23
 
RESTing on HTTP
RESTing on HTTPRESTing on HTTP
RESTing on HTTP
 
Symfony-CMF/SeoBundle - unKonf
Symfony-CMF/SeoBundle - unKonfSymfony-CMF/SeoBundle - unKonf
Symfony-CMF/SeoBundle - unKonf
 

Concepts of Code Quality

  • 1. Concepts of Code Quality Maximilian Berghoff Andreas Haberberger Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 2. Quelle:http://xkcd.com/844/ Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 3. Was ist CodeQuality? Alle Maßnahmen, die dazu führen, dass Code wartbar verständlich zugänglich erweiterbar austauschbar bleibt. Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 4. Also Maßnahmen, die die Lebensdauer und damit den Wert des Codes erhöhen. Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 5. 1. Qualität schaffen Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 6. Source Code Management Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 7. Linting Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 8. Testing Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 9. Unit Tests Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 10. Wann läuft mein Unittest durch? Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 11. Wann bekomme ich dann ein gutes Testergebnis? Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 12. ...und wie schreibe ich “testbaren” Code? Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 13. Test Driven Development Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 14. Integration Tests Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 15. e2e Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 16. Verteilung Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 17. Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 18. Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 19. Testen an der Domain Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 20. Cucumber/Gherkin Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 21. Ubiquitous Language Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 22. Business Need: Edit users In order to have customer support an Admin want's to edit a user. Scenario: Edit user data on behalf of a customer Given a user with email "maximilian.berghoff@mayflower.de" When i change the username to "ElectricMaxxx" Then the user profile should display the username "ElectricMaxxx" Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 23. Behavior Driven Development Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 24. “Sauberen” Code schreiben Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg Robert C. Martin: Clean Code. A Handbook of Agile Software Craftsmanship. Prentice Hall, Upper Saddle River NJ u. a. 2008
  • 25. Agile Methoden Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 26. 2. Qualität messen Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 27. Indikatoren Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 28. Code Metriken (objektive Qualitätsmaßstäbe) Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 29. subjektive Qualitätsmaßstäbe Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 30. Agile Methoden Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 31. 3. Qualität sicherstellen Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 32. Tools Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 33. Metriken Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 34. Metriken Scrutinizer Sonarqube Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 35. Build Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 36. Build Travis CI shippableTeamcity Jenkins Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg Bamboo
  • 37. Code Review Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 38. Code Review Upsource Github Crucible Gerrit Code Review Gitlab Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg Stash/Bitbucket
  • 39. Verständlicher Code Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 40. Deploy Workflow Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 41. Agile Methoden Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 42. Questions ? Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
  • 43. - Maximilian.Berghoff@mayflower.de - @ElectricMaxxx - https://github.com/ElectricMaxxx Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg Kontakt - Andreas.Haberberger@mayflower.de - @A_Haberberger - https://github.com/ahaberberger
  • 44. Developer Camp Würzburg 16.+17.09.2016 Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg https://developercamp.io/
  • 45. - Slides: “The pyramid is a lie” - Blog: “Testen an der Domaine” Metrik: - Scrutinizer: https://scrutinizer-ci.com - Sonarqube: http://www.sonarqube.org/ Build: - Travis: https://travis-ci.org/ - Shippable: https://app.shippable.com/ - Teamcity: https://www.jetbrains.com/teamcity/ - Bamboo: https://de.atlassian.com/software/bamboo - Jenkins: https://jenkins.io/ Code Review - Crucible: https://de.atlassian.com/software/crucible - Upsource: https://www.jetbrains.com/upsource/ - Github: Github - Gitlab: https://about.gitlab.com/ - Gerit: https://www.gerritcodereview.com/ Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg Links und Quellen
  • 46. Thank You Concepts of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg