Download - Social Games und ihr Clean Code

Transcript
Page 1: Social Games und ihr Clean Code

Social Gamesund ihr Clean Code

Page 2: Social Games und ihr Clean Code

http://www.vgchartz.com/gamedb/?name=fifa+soccer+13 || http://cartelthemes.com/fifa-13-193-hd-wallpapers.html

12.79 Mio.

Page 3: Social Games und ihr Clean Code

30.11 Mio.

http://www.vgchartz.com/gamedb/?name=Call+of+Duty%3A+Modern+Warfare+3 || http://www.alextv.de/2011/11/10/call-of-duty-modern-warfare-3-review

Page 4: Social Games und ihr Clean Code

Video Games = spezielle Interessen

Page 5: Social Games und ihr Clean Code

159.79 Mio.

Page 6: Social Games und ihr Clean Code

Social Games = Spiele für Jeden

Page 7: Social Games und ihr Clean Code

Berlin

Page 8: Social Games und ihr Clean Code

2009 — 20 Angestellte

Page 9: Social Games und ihr Clean Code

Heute — 250 Mitarbeiter

Page 10: Social Games und ihr Clean Code

20 Game-Teams

Page 11: Social Games und ihr Clean Code

Unabhängige

Entwicklungsteams

Page 12: Social Games und ihr Clean Code

Veränderliche,

kleine Teams

Page 13: Social Games und ihr Clean Code

Einheitlichkeit

Page 14: Social Games und ihr Clean Code

Arbeitsweise

Page 15: Social Games und ihr Clean Code

Keine festen Rollen

Page 16: Social Games und ihr Clean Code

Hohe Verantwortung

Page 17: Social Games und ihr Clean Code

Konfigurierbarkeit

Page 18: Social Games und ihr Clean Code

Wartbarkeit

Page 19: Social Games und ihr Clean Code

Wöchentliche Releases

Page 20: Social Games und ihr Clean Code

Tracking & Reporting

Page 21: Social Games und ihr Clean Code

Agile Arbeitsweise

Page 22: Social Games und ihr Clean Code

Agilität

Page 23: Social Games und ihr Clean Code

Einheitlichkeit

Wartbarkeit

Agilität

Verbessert

Ermöglicht

Page 24: Social Games und ihr Clean Code

Bubble Island

Page 25: Social Games und ihr Clean Code

2009Entwicklungsstart

Page 26: Social Games und ihr Clean Code

2011

Nicht mehr wartbar!

http://www.flickr.com/photos/mecklenburg

Page 27: Social Games und ihr Clean Code

Aber immer noch erfolgreich!

Page 28: Social Games und ihr Clean Code

Refactoring!

Page 29: Social Games und ihr Clean Code

1Einheitlichkeit

Page 30: Social Games und ihr Clean Code

Einheitlichkeit

Page 31: Social Games und ihr Clean Code

Einheitlichkeit

Page 32: Social Games und ihr Clean Code

Einheitlichkeit

Page 33: Social Games und ihr Clean Code

Namensgebung

Einheitlichkeit

Page 34: Social Games und ihr Clean Code

Namensgebung

•Sprechende Namen

Einheitlichkeit

Page 35: Social Games und ihr Clean Code

Namensgebung

•Sprechende Namen

•Keine Abkürzungen

Einheitlichkeit

Page 36: Social Games und ihr Clean Code

Namensgebung

•Sprechende Namen

•Keine Abkürzungen

•1 Begriff pro Konzept

Einheitlichkeit

Page 37: Social Games und ihr Clean Code

Einheitlichkeit

Page 38: Social Games und ihr Clean Code

Einheitlichkeit

Page 39: Social Games und ihr Clean Code

Einheitlichkeit

Page 40: Social Games und ihr Clean Code

Einheitlichkeit

Page 41: Social Games und ihr Clean Code

Einheitlichkeit

Page 42: Social Games und ihr Clean Code

Einheitlichkeit

Page 43: Social Games und ihr Clean Code

Einheitlichkeit

Page 44: Social Games und ihr Clean Code

Einheitlichkeit

Page 45: Social Games und ihr Clean Code

Formatierung

Einheitlichkeit

Page 46: Social Games und ihr Clean Code

Formatierung

•Einrückungen

Einheitlichkeit

Page 47: Social Games und ihr Clean Code

Formatierung

•Einrückungen

•Klammernumbrüche

Einheitlichkeit

Page 48: Social Games und ihr Clean Code

Formatierung

•Einrückungen

•Klammernumbrüche

•Variablen immer zuerst

Einheitlichkeit

Page 49: Social Games und ihr Clean Code

Formatierung

•Einrückungen

•Klammernumbrüche

•Variablen immer zuerst

•Öffentliche Methoden zuerst

Einheitlichkeit

Page 50: Social Games und ihr Clean Code

Einheitlichkeit

Page 51: Social Games und ihr Clean Code

Einheitlichkeit

Page 52: Social Games und ihr Clean Code

Kommentare

Einheitlichkeit

Page 53: Social Games und ihr Clean Code

Kommentare

•Vermeiden wenn möglich

Einheitlichkeit

Page 54: Social Games und ihr Clean Code

Kommentare

•Vermeiden wenn möglich

•Nutzungsszenarien

Einheitlichkeit

Page 55: Social Games und ihr Clean Code

Kommentare

•Vermeiden wenn möglich

•Nutzungsszenarien

‣Warnungen

Einheitlichkeit

Page 56: Social Games und ihr Clean Code

Kommentare

•Vermeiden wenn möglich

•Nutzungsszenarien

‣Warnungen

‣ Vereinfachte Erklärungen

Einheitlichkeit

Page 57: Social Games und ihr Clean Code

Einheitlichkeit

Einheitlichkeit

Page 58: Social Games und ihr Clean Code

Einheitlichkeit

•Namensgebung

Einheitlichkeit

Page 59: Social Games und ihr Clean Code

Einheitlichkeit

•Namensgebung

•Formatierung

Einheitlichkeit

Page 60: Social Games und ihr Clean Code

Einheitlichkeit

•Namensgebung

•Formatierung

•Kommentare

Einheitlichkeit

Page 61: Social Games und ihr Clean Code

2Wartbarkeit

Page 62: Social Games und ihr Clean Code

Wartbarkeit

Page 63: Social Games und ihr Clean Code

Wartbarkeit

Page 64: Social Games und ihr Clean Code

Wartbarkeit

Page 65: Social Games und ihr Clean Code

Wartbarkeit

Page 66: Social Games und ihr Clean Code

Wartbarkeit

Page 67: Social Games und ihr Clean Code

Methoden

Wartbarkeit

Page 68: Social Games und ihr Clean Code

Methoden

•Möglichst klein

Wartbarkeit

Page 69: Social Games und ihr Clean Code

Methoden

•Möglichst klein

•1 Abstraktionslevel

Wartbarkeit

Page 70: Social Games und ihr Clean Code

Methoden

•Möglichst klein

•1 Abstraktionslevel

•1 Funktionalität

Wartbarkeit

Page 71: Social Games und ihr Clean Code

Wartbarkeit

Page 72: Social Games und ihr Clean Code

Wartbarkeit

Page 73: Social Games und ihr Clean Code

Wartbarkeit

Page 74: Social Games und ihr Clean Code

Wartbarkeit

Page 75: Social Games und ihr Clean Code

Klassen

Wartbarkeit

Page 76: Social Games und ihr Clean Code

Klassen

•1 Grund für Veränderung (SRP)

Wartbarkeit

Page 77: Social Games und ihr Clean Code

Klassen

•1 Grund für Veränderung (SRP)

•Wenige Instanzvariablen

Wartbarkeit

Page 78: Social Games und ihr Clean Code

Klassen

•1 Grund für Veränderung (SRP)

•Wenige Instanzvariablen

•Hohe Kohäsion

Wartbarkeit

Page 79: Social Games und ihr Clean Code

Wartbarkeit

Page 80: Social Games und ihr Clean Code

Wartbarkeit

Page 81: Social Games und ihr Clean Code

Wartbarkeit

Page 82: Social Games und ihr Clean Code

Wartbarkeit

Page 83: Social Games und ihr Clean Code

Wartbarkeit

Page 84: Social Games und ihr Clean Code

Wartbarkeit

Page 85: Social Games und ihr Clean Code

Datenstrukturen

Wartbarkeit

Page 86: Social Games und ihr Clean Code

•Train Wrecks vermeiden

Datenstrukturen

Wartbarkeit

Page 87: Social Games und ihr Clean Code

•Train Wrecks vermeiden

•Data Transfer Objects nutzen

Datenstrukturen

Wartbarkeit

Page 88: Social Games und ihr Clean Code

•Train Wrecks vermeiden

•Data Transfer Objects nutzen

•Erzeugung und Nutzung von Systemen trennen

Datenstrukturen

Wartbarkeit

Page 89: Social Games und ihr Clean Code

Wartbarkeit

Wartbarkeit

Page 90: Social Games und ihr Clean Code

•Methoden

Wartbarkeit

Wartbarkeit

Page 91: Social Games und ihr Clean Code

•Methoden

•Klassen

Wartbarkeit

Wartbarkeit

Page 92: Social Games und ihr Clean Code

•Methoden

•Klassen

•Datenstrukturen

Wartbarkeit

Wartbarkeit

Page 93: Social Games und ihr Clean Code

3Agilität

Page 94: Social Games und ihr Clean Code

Wissensinseln

Agilität

http://flickr.com/photos/92928628@N04

Page 95: Social Games und ihr Clean Code

Pair Programming

Agilität

Page 96: Social Games und ihr Clean Code

•Vermeiden von Wissensinseln

Pair Programming

Agilität

Page 97: Social Games und ihr Clean Code

•Vermeiden von Wissensinseln

•Integration neuer Teammitglieder

Pair Programming

Agilität

Page 98: Social Games und ihr Clean Code

•Vermeiden von Wissensinseln

•Integration neuer Teammitglieder

•Kollektive Verantwortung

Pair Programming

Agilität

Page 99: Social Games und ihr Clean Code

Schwer lesbar

& Unstrukturiert

Agilität

Page 100: Social Games und ihr Clean Code

Regelmäßiges Refactoring

Agilität

Page 101: Social Games und ihr Clean Code

•Stetige Verbesserungen

Regelmäßiges Refactoring

Agilität

Page 102: Social Games und ihr Clean Code

•Stetige Verbesserungen

•The Boy Scout Rule (Robert C. Martin)

Regelmäßiges Refactoring

Agilität

Page 103: Social Games und ihr Clean Code

Keine Absicherung

Agilität

http://flickr.com/photos/99995147@N00

Page 104: Social Games und ihr Clean Code

Unit-Tests

Agilität

Page 105: Social Games und ihr Clean Code

•Sicherheitsnetz

Unit-Tests

Agilität

Page 106: Social Games und ihr Clean Code

•Sicherheitsnetz

•Erleichterte Einarbeitung

Unit-Tests

Agilität

Page 107: Social Games und ihr Clean Code

•Sicherheitsnetz

•Erleichterte Einarbeitung

•Versuchsfeld

Unit-Tests

Agilität

Page 108: Social Games und ihr Clean Code

Features spät testbar

Agilität

http://www.flickr.com/photos/adesigna

Page 109: Social Games und ihr Clean Code

Kontinuierliche Integration

Agilität

Page 110: Social Games und ihr Clean Code

•Softwareartefakte früh nutzbar

Kontinuierliche Integration

Agilität

Page 111: Social Games und ihr Clean Code

•Softwareartefakte früh nutzbar

•Erwartungen überprüfbar

Kontinuierliche Integration

Agilität

Page 112: Social Games und ihr Clean Code

•Softwareartefakte früh nutzbar

•Erwartungen überprüfbar

•Probleme schnell absehbar

Kontinuierliche Integration

Agilität

Page 113: Social Games und ihr Clean Code

Agilität

Agilität

Page 114: Social Games und ihr Clean Code

•Pair Programming

Agilität

Agilität

Page 115: Social Games und ihr Clean Code

•Pair Programming

•Regelmäßiges Refactoring

Agilität

Agilität

Page 116: Social Games und ihr Clean Code

•Pair Programming

•Regelmäßiges Refactoring

•Unit-Tests

Agilität

Agilität

Page 117: Social Games und ihr Clean Code

•Pair Programming

•Regelmäßiges Refactoring

•Unit-Tests

•Kontinuierliche Integration

Agilität

Agilität

Page 118: Social Games und ihr Clean Code

4Werkzeuge

Page 119: Social Games und ihr Clean Code

https://www.pivotaltracker.com

Werkzeuge

Page 122: Social Games und ihr Clean Code

CPD & PMD

Werkzeuge

Page 123: Social Games und ihr Clean Code

Mehrwert für Wooga

Page 124: Social Games und ihr Clean Code

Flexibles Teambuilding

http://www.flickr.com/photos/scoobay

Page 125: Social Games und ihr Clean Code

Hohe Produktivität über langen Zeitraum

http://www.flickr.com/photos/stephenbegin

Page 126: Social Games und ihr Clean Code

veränderte Anforderungenhttp://www.flickr.com/photos/jimculp

Schnelle Reaktion auf

Page 127: Social Games und ihr Clean Code

Clean Code als

gemeinsame Sprache

Page 128: Social Games und ihr Clean Code

Weniger wtf/minute

Page 129: Social Games und ihr Clean Code

Fragen?

jobs.wooga.com

@StephanPartzsch