Upload
maximilian-berghoff
View
120
Download
2
Embed Size (px)
Citation preview
Aspects of Code QualityMaximilian Berghoff Andreas Haberberger
Mayflower Meetup Berlin
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Que
lle:
http
://xk
cd.c
om/8
44/
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Der Fahrplan
Warum Code Quality?
Code Quality schaffen
Code Quality messen und sicherstellen
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Warum Code Quality?
Was kosten Systemausfälle?
Was kostet Maintenance?
Was kostet Weiterentwicklung?
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Warum Code Quality?
Zufriedene Entwickler!
Warum?
CI mit Angst führt zu PI (procrastinated integration)
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
1.Qualität schaffen
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Maßnahmen, die die
Lebensdauerund damit den
Wertdes Codes erhöhen.
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Alle Maßnahmen, die dazu führen, dass Code
wartbar
verständlich
zugänglich
erweiterbar
austauschbar
bleibt.
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Testing
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Linting
Metriken
Unit
Service
Integration
e2e
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Testqualität
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
...und wie schreibe ich “testbaren” Code?
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Test Driven Development
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Verteilung
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Testen an der DomainBDD
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Ubiquitous Language
Aspects 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 "[email protected]" When i change the username to "ElectricMaxxx" Then the user profile should display the username "ElectricMaxxx"
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
2. Qualität messenWarum?
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Indikatoren
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Code Metriken(objektive Qualitätsmaßstäbe)
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
subjektive Qualitätsmaßstäbe
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Agile Methoden
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Im Deploy
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Stetiges messen
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Qualität sicherstellen
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Wer kann Qualität sehen ?
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Entwickler sehen und merken Code Quality
Anzahl Tests
Geiler Code
Code lässt sich besser bearbeiten
Neue Kollegen schneller eingelernt
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Bussiness kann Qualität sichtbar gemacht werden
Bugs - Weniger/Schneller gefixed
BDD um Anforderung und Entwicklung “kurzzuschließen”
Features schneller/planbarer
Entwickler austauschbar
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Bewusst auf Qualität verzichten?
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Technische SchuldenWarum eingehen?
Welche Folgen entstehen?
Wie geht man damit um?
Wie wieder loswerden?
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Fragen ?
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Warum Code Quality?
Was kosten Systemausfälle?
Was kostet Maintenance?
Was kostet Weiterentwicklung?
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
- @ElectricMaxxx
- https://github.com/ElectricMaxxx
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Kontakt
- @A_Haberberger
- https://github.com/ahaberberger
- 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/Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Links und Quellen
Thank You
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
“Sauberen” Code schreiben
Aspects 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
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Tools
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Metriken
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Metriken
Scrutinizer Sonarqube
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Build
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Build
Travis CI
shippableTeamcity
Jenkins
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Bamboo
Code Review
Aspects 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
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Stash/Bitbucket
Verständlicher Code
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Deploy Workflow
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Agile Methoden
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
3. Qualität sicherstellen
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Behavior Driven Development
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Resilience
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg
Cucumber/Gherkin
Aspects of Code Quality - Maximilian Berghoff & Andreas Haberberger, Mayflower GmbH, Gneisenaustraße 10/11, D-97074 Würzburg