Social Games und ihr Clean Code

129
Social Games und ihr Clean Code

description

Wie Clean Code für Social Games in einem großen Unternehmen verwendet wird.

Transcript of Social Games und ihr Clean Code

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