SlideShare ist ein Scribd-Unternehmen logo
Die 7 Wege zum Clean Code
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 2
Über mich
Claudio Altamura
Softwareentwickler
Certified ScrumMaster
Interessen
● Agile Softwareentwicklung
● Softwarearchitekturen
● Java
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 3
Inhalt
1. Statische Codeanalyse
2. Testdriven Development
3. Refactoring
4. Continuous Integration
5. Reviews
6. Coding Standards
7. Coding Dojos
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 4
Statische Codeanalyse
Automatische Erkennung von Fehlern
● Sicherstellung von Coding-Standards
● Prüfung zum Softwaredesign
● Einhaltung diverser Metriken
● Namen, Größen, Anzahl
● weitere Verifikationen
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 5
Statische Codeanalyse
Welche Tools gibt es?
Checkstyle, Findbugs, PMD, etc.
mvn checkstyle:checkstyle
mvn findbugs:findbugs
Was messen?
● Anzahl Zeilen, Methoden und Klassen
● Duplicate Code
● Abhängigkeiten, Komplexität
● Anzahl von Tests, Anzahl fehlgeschlagener Tests
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 6
Statische Codeanalyse
SONARQUBE
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 7
Testdriven Development
Vorteile
● Senkt die Entwicklungskosten
● Produktivere Programmierer
● Einfache Validierung
● Positive Auswirkungen auf das Design
Vorgehen
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 8
Testdriven Development
Best Practices
● Zuerst die Tests schreiben
● "Keep it simple stupid" (KISS)
● "You aren't gonna need it" (YAGNI).
● Keep the unit small
● Der Testcode ist genau so wichtig
● Nicht auf Zustände vorhergelaufenen Tests bauen
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 9
Testdriven Development
Vorsicht!
● Nicht für alle Bereiche geeignet: z.B. Oberflächen
● Unterstützung durch Management wichtig
● Schlecht geschriebene Tests
● „Betriebsblindheit“ bei Unit Tests
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 10
Refactoring
By continuously improving the design of code, we make it easier and easier to
work with. ... If you get into the hygienic habit of refactoring continuously, you'll
find that it is easier to extend and maintain code. —Joshua Kerievsky,
Refactoring to Patterns
Vorteile
● Erhöhung der Lesbarkeit und Verständlichkeit
● Verbesserung der Wartbarkeit und Erweiterbarkeit
● Senkung von Kosten für Erweiterungen
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 11
Refactoring
Mögliche Refactorings
● Abstraktion
● Code in mehr logische Einheiten unterteilen
● Name und Ort von Code
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 12
Refactoring
Risiken
● Risiko ungewünschter Änderungen und Fehler
● große Änderungen erschweren die Ursachenanalyse
● Unit-Tests senken lediglich die Risiken
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 13
Continuous Integration
Praktiken
● Automatisierte Übersetzung
● Kontinuierliche Test-Entwicklung
● Häufige Integration
● Kurze Testzyklen
● Gespiegelte Produktionsumgebung
● Einfacher Zugriff
● Automatisiertes Reporting
● Automatisierte Verteilung
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 14
Continuous Integration
Vorteile
● Integrations-Probleme werden laufend gefixt
● frühe Warnungen, Feedback-Zyklus
● Unit-Tests entdecken Fehler zeitnah
● ständige Verfügbarkeit eines lauffähigen Standes
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 15
Continuous Integration
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 16
Reviews
Reviewarten
● Informelles Review
● Walkthrough
● Inspektion
Lightweight Reviews
● Over the Shoulder
● Pair Programming
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 17
Reviews
Vorteile
● Kostengünstige Behebung von Fehlern
● Identifizierung von Verbesserungsmöglichkeiten
● Wissentransfer
Erfolgsfaktoren
● Konstruktive Kritik üben
● Kultur von Lernen und Prozessverbesserung
● „Taktgefühl“ des Reviewers
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 18
Reviews
Gerrit
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 19
Coding Standards
Why Have Code Conventions?
Code conventions are important to programmers for a number of reasons:
● 80% of the lifetime cost of a piece of software goes to maintenance.
● Hardly any software is maintained for its whole life by the original author.
Code conventions improve the readability of the software, allowing engineers to
understand new code more quickly and thoroughly. — Code Conventions for the Java Language
Was sind Coding Standards?
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de
Coding Standards
Beispiele für Coding Standards
● Naming Conventions, Anweisungen, White Space
● Deklarationen, Kommentare, Einrückung
● Dateiorganisation, Praktiken, Prinzipien und Regeln
Vorteile
● Erleichterung der Arbeit
● Steigerung der Lesbarkeit, Verständlichkeit und
Wartbarkeit
● Elimierung von vermeidbaren Fehlerquellen
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 21
Coding Standards
Prozess
● Basis Language Coding Conventions
● Festlegung in einem Dokument
● Schrittweise Justierung der Regeln, z.B.
● Tools für die statische Codeanalyse
● Codeformatter
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 22
Coding Dojos
● Dojo = Trainingsraum
● Kata = vorgegebener Bewegungsablauf
● Code Kata = vorgegebene Programmieraufgabe
● viele Male hintereinander ausgeführt
● es geht nicht um die Lösung, sondern um den Weg
● Muster sollen in Fleisch und Blut übergehen
Ziel: besserer Entwickler zu werden
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 23
Coding Dojos
Ablauf
● zwei Entwickler im Team an einem Rechner
● restliche Teilnehmer schauen auf den Beamer
● nach einer Zeitspanne Wechsel eines Entwickler
● bis nichts mehr zu verbessern ist
● am Ende Retrospektive
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 24
Coding Dojos
Für was eignen sich Coding Katas?
● TDD zu lernen
● Neue Sprache oder Sprachfeatures zu lernen
● besser zu programmieren
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de
Fragen & Antworten
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de 26
Links
Statische Codeanalyse
SonarSource (http://www.sonarqube.com)
Continuous Integration
Martin Fowler CI (http://www.martinfowler.com/articles/continuousIntegration.html)
TDD
Introduction to TDD (http://www.agiledata.org/essays/tdd.html)
Refactoring
Refactoring to Patterns Catalog (http://industriallogic.com/xp/refactoring/catalog.html)
Reviews
Best Kept Secrets (http://smartbear.com/SmartBear/media/pdfs/best-kept-secrets-of-peer-code-review.pdf)
Coding Standards
Code Conventions for the Java Programming Language (http://www.oracle.com/technetwork/java/codeconv-138413.html)
Coding Dojos
CodersDojo (http://codersdojo.org)
Claudio Altamura, Entwickler & ScrumMaster
ccd2013@claudioaltamura.de
Vielen Dank für eure Aufmerksamkeit.
www.claudioaltamura.de

Weitere ähnliche Inhalte

Ähnlich wie Die 7 Wege zum Clean Code

2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
FotiosKaramitsos
 
Einführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungEinführung in die Software-Qualitätssicherung
Einführung in die Software-Qualitätssicherung
Christian Baranowski
 
Responsive Multichannel-E-Commerce: Vorgehen und Learnings aus der Praxis
Responsive Multichannel-E-Commerce: Vorgehen und Learnings aus der PraxisResponsive Multichannel-E-Commerce: Vorgehen und Learnings aus der Praxis
Responsive Multichannel-E-Commerce: Vorgehen und Learnings aus der Praxis
Roberto Rizzi
 
Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Referat: Scrum Rocks – Testing Sucks?! (reloaded)Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Digicomp Academy AG
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo
QAware GmbH
 
Scrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADEDScrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADED
SwissQ Consulting AG
 
RPA 2024: Rollen, Lebenszyklus, Trends & Chancen
RPA 2024: Rollen, Lebenszyklus, Trends & ChancenRPA 2024: Rollen, Lebenszyklus, Trends & Chancen
RPA 2024: Rollen, Lebenszyklus, Trends & Chancen
FotiosKaramitsos
 
Google Tag Manager Templates
Google Tag Manager TemplatesGoogle Tag Manager Templates
Google Tag Manager Templates
📊 Markus Baersch
 
Was macht ein Start Up erfolgreich?
Was macht ein Start Up erfolgreich?Was macht ein Start Up erfolgreich?
Was macht ein Start Up erfolgreich?
Manuel Blechschmidt
 
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
Aberla
 
Softwarequalität - Einführung in eine neue Vorlesung
Softwarequalität - Einführung in eine neue VorlesungSoftwarequalität - Einführung in eine neue Vorlesung
Softwarequalität - Einführung in eine neue Vorlesung
Gerrit Beine
 
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
QAware GmbH
 
UI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis: Von Lokalisierung bis NachhaltigkeitUI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
Nico Orschel
 
Angebotspräsentation
AngebotspräsentationAngebotspräsentation
Angebotspräsentation
Circo Loco
 
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
QAware GmbH
 
Agilität und Qualitätskriterien in der Softwareentwicklung
Agilität und Qualitätskriterien in der SoftwareentwicklungAgilität und Qualitätskriterien in der Softwareentwicklung
Agilität und Qualitätskriterien in der Softwareentwicklung
rico.fritzsche
 
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
QAware GmbH
 
2022-12_RPA-ChapterEvent_WhatsNew
2022-12_RPA-ChapterEvent_WhatsNew2022-12_RPA-ChapterEvent_WhatsNew
2022-12_RPA-ChapterEvent_WhatsNew
FotiosKaramitsos
 
Roadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht'sRoadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht's
camunda services GmbH
 
objectiF extrem
objectiF extremobjectiF extrem
objectiF extrem
Olaf Lewitz
 

Ähnlich wie Die 7 Wege zum Clean Code (20)

2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
 
Einführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungEinführung in die Software-Qualitätssicherung
Einführung in die Software-Qualitätssicherung
 
Responsive Multichannel-E-Commerce: Vorgehen und Learnings aus der Praxis
Responsive Multichannel-E-Commerce: Vorgehen und Learnings aus der PraxisResponsive Multichannel-E-Commerce: Vorgehen und Learnings aus der Praxis
Responsive Multichannel-E-Commerce: Vorgehen und Learnings aus der Praxis
 
Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Referat: Scrum Rocks – Testing Sucks?! (reloaded)Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Referat: Scrum Rocks – Testing Sucks?! (reloaded)
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo
 
Scrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADEDScrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADED
 
RPA 2024: Rollen, Lebenszyklus, Trends & Chancen
RPA 2024: Rollen, Lebenszyklus, Trends & ChancenRPA 2024: Rollen, Lebenszyklus, Trends & Chancen
RPA 2024: Rollen, Lebenszyklus, Trends & Chancen
 
Google Tag Manager Templates
Google Tag Manager TemplatesGoogle Tag Manager Templates
Google Tag Manager Templates
 
Was macht ein Start Up erfolgreich?
Was macht ein Start Up erfolgreich?Was macht ein Start Up erfolgreich?
Was macht ein Start Up erfolgreich?
 
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
 
Softwarequalität - Einführung in eine neue Vorlesung
Softwarequalität - Einführung in eine neue VorlesungSoftwarequalität - Einführung in eine neue Vorlesung
Softwarequalität - Einführung in eine neue Vorlesung
 
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
 
UI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis: Von Lokalisierung bis NachhaltigkeitUI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
 
Angebotspräsentation
AngebotspräsentationAngebotspräsentation
Angebotspräsentation
 
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
 
Agilität und Qualitätskriterien in der Softwareentwicklung
Agilität und Qualitätskriterien in der SoftwareentwicklungAgilität und Qualitätskriterien in der Softwareentwicklung
Agilität und Qualitätskriterien in der Softwareentwicklung
 
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
 
2022-12_RPA-ChapterEvent_WhatsNew
2022-12_RPA-ChapterEvent_WhatsNew2022-12_RPA-ChapterEvent_WhatsNew
2022-12_RPA-ChapterEvent_WhatsNew
 
Roadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht'sRoadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht's
 
objectiF extrem
objectiF extremobjectiF extrem
objectiF extrem
 

Die 7 Wege zum Clean Code

  • 1. Die 7 Wege zum Clean Code
  • 2. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 2 Über mich Claudio Altamura Softwareentwickler Certified ScrumMaster Interessen ● Agile Softwareentwicklung ● Softwarearchitekturen ● Java
  • 3. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 3 Inhalt 1. Statische Codeanalyse 2. Testdriven Development 3. Refactoring 4. Continuous Integration 5. Reviews 6. Coding Standards 7. Coding Dojos
  • 4. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 4 Statische Codeanalyse Automatische Erkennung von Fehlern ● Sicherstellung von Coding-Standards ● Prüfung zum Softwaredesign ● Einhaltung diverser Metriken ● Namen, Größen, Anzahl ● weitere Verifikationen
  • 5. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 5 Statische Codeanalyse Welche Tools gibt es? Checkstyle, Findbugs, PMD, etc. mvn checkstyle:checkstyle mvn findbugs:findbugs Was messen? ● Anzahl Zeilen, Methoden und Klassen ● Duplicate Code ● Abhängigkeiten, Komplexität ● Anzahl von Tests, Anzahl fehlgeschlagener Tests
  • 6. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 6 Statische Codeanalyse SONARQUBE
  • 7. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 7 Testdriven Development Vorteile ● Senkt die Entwicklungskosten ● Produktivere Programmierer ● Einfache Validierung ● Positive Auswirkungen auf das Design Vorgehen
  • 8. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 8 Testdriven Development Best Practices ● Zuerst die Tests schreiben ● "Keep it simple stupid" (KISS) ● "You aren't gonna need it" (YAGNI). ● Keep the unit small ● Der Testcode ist genau so wichtig ● Nicht auf Zustände vorhergelaufenen Tests bauen
  • 9. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 9 Testdriven Development Vorsicht! ● Nicht für alle Bereiche geeignet: z.B. Oberflächen ● Unterstützung durch Management wichtig ● Schlecht geschriebene Tests ● „Betriebsblindheit“ bei Unit Tests
  • 10. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 10 Refactoring By continuously improving the design of code, we make it easier and easier to work with. ... If you get into the hygienic habit of refactoring continuously, you'll find that it is easier to extend and maintain code. —Joshua Kerievsky, Refactoring to Patterns Vorteile ● Erhöhung der Lesbarkeit und Verständlichkeit ● Verbesserung der Wartbarkeit und Erweiterbarkeit ● Senkung von Kosten für Erweiterungen
  • 11. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 11 Refactoring Mögliche Refactorings ● Abstraktion ● Code in mehr logische Einheiten unterteilen ● Name und Ort von Code
  • 12. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 12 Refactoring Risiken ● Risiko ungewünschter Änderungen und Fehler ● große Änderungen erschweren die Ursachenanalyse ● Unit-Tests senken lediglich die Risiken
  • 13. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 13 Continuous Integration Praktiken ● Automatisierte Übersetzung ● Kontinuierliche Test-Entwicklung ● Häufige Integration ● Kurze Testzyklen ● Gespiegelte Produktionsumgebung ● Einfacher Zugriff ● Automatisiertes Reporting ● Automatisierte Verteilung
  • 14. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 14 Continuous Integration Vorteile ● Integrations-Probleme werden laufend gefixt ● frühe Warnungen, Feedback-Zyklus ● Unit-Tests entdecken Fehler zeitnah ● ständige Verfügbarkeit eines lauffähigen Standes
  • 15. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 15 Continuous Integration
  • 16. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 16 Reviews Reviewarten ● Informelles Review ● Walkthrough ● Inspektion Lightweight Reviews ● Over the Shoulder ● Pair Programming
  • 17. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 17 Reviews Vorteile ● Kostengünstige Behebung von Fehlern ● Identifizierung von Verbesserungsmöglichkeiten ● Wissentransfer Erfolgsfaktoren ● Konstruktive Kritik üben ● Kultur von Lernen und Prozessverbesserung ● „Taktgefühl“ des Reviewers
  • 18. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 18 Reviews Gerrit
  • 19. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 19 Coding Standards Why Have Code Conventions? Code conventions are important to programmers for a number of reasons: ● 80% of the lifetime cost of a piece of software goes to maintenance. ● Hardly any software is maintained for its whole life by the original author. Code conventions improve the readability of the software, allowing engineers to understand new code more quickly and thoroughly. — Code Conventions for the Java Language Was sind Coding Standards?
  • 20. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de Coding Standards Beispiele für Coding Standards ● Naming Conventions, Anweisungen, White Space ● Deklarationen, Kommentare, Einrückung ● Dateiorganisation, Praktiken, Prinzipien und Regeln Vorteile ● Erleichterung der Arbeit ● Steigerung der Lesbarkeit, Verständlichkeit und Wartbarkeit ● Elimierung von vermeidbaren Fehlerquellen
  • 21. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 21 Coding Standards Prozess ● Basis Language Coding Conventions ● Festlegung in einem Dokument ● Schrittweise Justierung der Regeln, z.B. ● Tools für die statische Codeanalyse ● Codeformatter
  • 22. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 22 Coding Dojos ● Dojo = Trainingsraum ● Kata = vorgegebener Bewegungsablauf ● Code Kata = vorgegebene Programmieraufgabe ● viele Male hintereinander ausgeführt ● es geht nicht um die Lösung, sondern um den Weg ● Muster sollen in Fleisch und Blut übergehen Ziel: besserer Entwickler zu werden
  • 23. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 23 Coding Dojos Ablauf ● zwei Entwickler im Team an einem Rechner ● restliche Teilnehmer schauen auf den Beamer ● nach einer Zeitspanne Wechsel eines Entwickler ● bis nichts mehr zu verbessern ist ● am Ende Retrospektive
  • 24. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 24 Coding Dojos Für was eignen sich Coding Katas? ● TDD zu lernen ● Neue Sprache oder Sprachfeatures zu lernen ● besser zu programmieren
  • 25. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de Fragen & Antworten
  • 26. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de 26 Links Statische Codeanalyse SonarSource (http://www.sonarqube.com) Continuous Integration Martin Fowler CI (http://www.martinfowler.com/articles/continuousIntegration.html) TDD Introduction to TDD (http://www.agiledata.org/essays/tdd.html) Refactoring Refactoring to Patterns Catalog (http://industriallogic.com/xp/refactoring/catalog.html) Reviews Best Kept Secrets (http://smartbear.com/SmartBear/media/pdfs/best-kept-secrets-of-peer-code-review.pdf) Coding Standards Code Conventions for the Java Programming Language (http://www.oracle.com/technetwork/java/codeconv-138413.html) Coding Dojos CodersDojo (http://codersdojo.org)
  • 27. Claudio Altamura, Entwickler & ScrumMaster ccd2013@claudioaltamura.de Vielen Dank für eure Aufmerksamkeit. www.claudioaltamura.de