Aspects Of Code Quality meetup

Post on 13-Apr-2017

120 views 2 download

Transcript of Aspects Of Code Quality meetup

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 "maximilian.berghoff@mayflower.de" 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

- Maximilian.Berghoff@mayflower.de

- @ElectricMaxxx

- https://github.com/ElectricMaxxx

Aspects 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

- 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