Social Games und ihr Clean Code

Stephan Partzsch
Stephan PartzschInteractive Software Engineer at Stephan Partzsch
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.
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
Video Games = spezielle Interessen
159.79 Mio.
Social Games = Spiele für Jeden
Berlin
2009 — 20 Angestellte
Heute — 250 Mitarbeiter
20 Game-Teams
Unabhängige
Entwicklungsteams
Veränderliche,
kleine Teams
Einheitlichkeit
Arbeitsweise
Keine festen Rollen
Hohe Verantwortung
Konfigurierbarkeit
Wartbarkeit
Wöchentliche Releases
Tracking & Reporting
Agile Arbeitsweise
Agilität
Einheitlichkeit
Wartbarkeit
Agilität
Verbessert
Ermöglicht
Bubble Island
2009
Entwicklungsstart
2011
Nicht mehr wartbar!
http://www.flickr.com/photos/mecklenburg
Aber immer noch
erfolgreich!
Refactoring!
1
Einheitlichkeit
Einheitlichkeit
Einheitlichkeit
Einheitlichkeit
Namensgebung
Einheitlichkeit
Namensgebung
•Sprechende Namen
Einheitlichkeit
Namensgebung
•Sprechende Namen
•Keine Abkürzungen
Einheitlichkeit
Namensgebung
•Sprechende Namen
•Keine Abkürzungen
•1 Begriff pro Konzept
Einheitlichkeit
Einheitlichkeit
Einheitlichkeit
Einheitlichkeit
Einheitlichkeit
Einheitlichkeit
Einheitlichkeit
Einheitlichkeit
Einheitlichkeit
Formatierung
Einheitlichkeit
Formatierung
•Einrückungen
Einheitlichkeit
Formatierung
•Einrückungen
•Klammernumbrüche
Einheitlichkeit
Formatierung
•Einrückungen
•Klammernumbrüche
•Variablen immer zuerst
Einheitlichkeit
Formatierung
•Einrückungen
•Klammernumbrüche
•Variablen immer zuerst
•Öffentliche Methoden zuerst
Einheitlichkeit
Einheitlichkeit
Einheitlichkeit
Kommentare
Einheitlichkeit
Kommentare
•Vermeiden wenn möglich
Einheitlichkeit
Kommentare
•Vermeiden wenn möglich
•Nutzungsszenarien
Einheitlichkeit
Kommentare
•Vermeiden wenn möglich
•Nutzungsszenarien
‣ Warnungen
Einheitlichkeit
Kommentare
•Vermeiden wenn möglich
•Nutzungsszenarien
‣ Warnungen
‣ Vereinfachte Erklärungen
Einheitlichkeit
Einheitlichkeit
Einheitlichkeit
Einheitlichkeit
•Namensgebung
Einheitlichkeit
Einheitlichkeit
•Namensgebung
•Formatierung
Einheitlichkeit
Einheitlichkeit
•Namensgebung
•Formatierung
•Kommentare
Einheitlichkeit
2
Wartbarkeit
Wartbarkeit
Wartbarkeit
Wartbarkeit
Wartbarkeit
Wartbarkeit
Methoden
Wartbarkeit
Methoden
•Möglichst klein
Wartbarkeit
Methoden
•Möglichst klein
•1 Abstraktionslevel
Wartbarkeit
Methoden
•Möglichst klein
•1 Abstraktionslevel
•1 Funktionalität
Wartbarkeit
Wartbarkeit
Wartbarkeit
Wartbarkeit
Wartbarkeit
Klassen
Wartbarkeit
Klassen
•1 Grund für Veränderung (SRP)
Wartbarkeit
Klassen
•1 Grund für Veränderung (SRP)
•Wenige Instanzvariablen
Wartbarkeit
Klassen
•1 Grund für Veränderung (SRP)
•Wenige Instanzvariablen
•Hohe Kohäsion
Wartbarkeit
Wartbarkeit
Wartbarkeit
Wartbarkeit
Wartbarkeit
Wartbarkeit
Wartbarkeit
Datenstrukturen
Wartbarkeit
•Train Wrecks vermeiden
Datenstrukturen
Wartbarkeit
•Train Wrecks vermeiden
•Data Transfer Objects nutzen
Datenstrukturen
Wartbarkeit
•Train Wrecks vermeiden
•Data Transfer Objects nutzen
•Erzeugung und Nutzung von
Systemen trennen
Datenstrukturen
Wartbarkeit
Wartbarkeit
Wartbarkeit
•Methoden
Wartbarkeit
Wartbarkeit
•Methoden
•Klassen
Wartbarkeit
Wartbarkeit
•Methoden
•Klassen
•Datenstrukturen
Wartbarkeit
Wartbarkeit
3
Agilität
Wissensinseln
Agilität
http://flickr.com/photos/92928628@N04
Pair Programming
Agilität
•Vermeiden von Wissensinseln
Pair Programming
Agilität
•Vermeiden von Wissensinseln
•Integration neuer Teammitglieder
Pair Programming
Agilität
•Vermeiden von Wissensinseln
•Integration neuer Teammitglieder
•Kollektive Verantwortung
Pair Programming
Agilität
Schwer lesbar
& Unstrukturiert
Agilität
Regelmäßiges
Refactoring
Agilität
•Stetige Verbesserungen
Regelmäßiges
Refactoring
Agilität
•Stetige Verbesserungen
•The Boy Scout Rule (Robert C. Martin)
Regelmäßiges
Refactoring
Agilität
Keine Absicherung
Agilität
http://flickr.com/photos/99995147@N00
Unit-Tests
Agilität
•Sicherheitsnetz
Unit-Tests
Agilität
•Sicherheitsnetz
•Erleichterte Einarbeitung
Unit-Tests
Agilität
•Sicherheitsnetz
•Erleichterte Einarbeitung
•Versuchsfeld
Unit-Tests
Agilität
Features spät testbar
Agilität
http://www.flickr.com/photos/adesigna
Kontinuierliche Integration
Agilität
•Softwareartefakte früh nutzbar
Kontinuierliche Integration
Agilität
•Softwareartefakte früh nutzbar
•Erwartungen überprüfbar
Kontinuierliche Integration
Agilität
•Softwareartefakte früh nutzbar
•Erwartungen überprüfbar
•Probleme schnell absehbar
Kontinuierliche Integration
Agilität
Agilität
Agilität
•Pair Programming
Agilität
Agilität
•Pair Programming
•Regelmäßiges Refactoring
Agilität
Agilität
•Pair Programming
•Regelmäßiges Refactoring
•Unit-Tests
Agilität
Agilität
•Pair Programming
•Regelmäßiges Refactoring
•Unit-Tests
•Kontinuierliche Integration
Agilität
Agilität
4
Werkzeuge
https://www.pivotaltracker.com
Werkzeuge
http://nvie.com/img/2009/12/Screen-shot-2009-12-24-at-11.32.03.png
Git-Flow
Werkzeuge
http://jenkins.org
Werkzeuge
CPD & PMD
Werkzeuge
Mehrwert für Wooga
Flexibles Teambuilding
http://www.flickr.com/photos/scoobay
Hohe Produktivität
über langen Zeitraum
http://www.flickr.com/photos/stephenbegin
veränderte Anforderungen
http://www.flickr.com/photos/jimculp
Schnelle Reaktion auf
Clean Code als
gemeinsame Sprache
Weniger wtf/minute
Fragen?
jobs.wooga.com
@StephanPartzsch
1 of 129

Recommended

Visuaalisuus verkossa Edupoli by
Visuaalisuus verkossa EdupoliVisuaalisuus verkossa Edupoli
Visuaalisuus verkossa EdupoliSanna Brauer
437 views61 slides
Effizientere Projekte durch Extreme Programming? by
Effizientere Projekte durch Extreme Programming?Effizientere Projekte durch Extreme Programming?
Effizientere Projekte durch Extreme Programming?GFU Cyrus AG
1.2K views22 slides
OPITZ CONSULTING Code Camp 2011 - Iteration 1 by
OPITZ CONSULTING Code Camp 2011 - Iteration 1OPITZ CONSULTING Code Camp 2011 - Iteration 1
OPITZ CONSULTING Code Camp 2011 - Iteration 1OPITZ CONSULTING Deutschland
280 views7 slides
Pair Programming: Tipps zum Spaß by
Pair Programming: Tipps zum SpaßPair Programming: Tipps zum Spaß
Pair Programming: Tipps zum SpaßDuana Stanley
1.9K views84 slides
Launching an Effective Mentoring Program by
Launching an Effective Mentoring ProgramLaunching an Effective Mentoring Program
Launching an Effective Mentoring ProgramDebby McNichols
28.5K views35 slides
Coderetreat Vorlage by
Coderetreat VorlageCoderetreat Vorlage
Coderetreat VorlageRamon Anger
1.1K views33 slides

More Related Content

Featured

ChatGPT and the Future of Work - Clark Boyd by
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
24.3K views69 slides
Getting into the tech field. what next by
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
5.7K views22 slides
Google's Just Not That Into You: Understanding Core Updates & Search Intent by
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
6.4K views99 slides
How to have difficult conversations by
How to have difficult conversations How to have difficult conversations
How to have difficult conversations Rajiv Jayarajah, MAppComm, ACC
5K views19 slides
Introduction to Data Science by
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data ScienceChristy Abraham Joy
82.3K views51 slides
Time Management & Productivity - Best Practices by
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
169.7K views42 slides

Featured(20)

ChatGPT and the Future of Work - Clark Boyd by Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd24.3K views
Getting into the tech field. what next by Tessa Mero
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
Tessa Mero5.7K views
Google's Just Not That Into You: Understanding Core Updates & Search Intent by Lily Ray
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray6.4K views
Time Management & Productivity - Best Practices by Vit Horky
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
Vit Horky169.7K views
The six step guide to practical project management by MindGenius
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
MindGenius36.6K views
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright... by RachelPearson36
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson3612.7K views
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present... by Applitools
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Applitools55.5K views
12 Ways to Increase Your Influence at Work by GetSmarter
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
GetSmarter401.7K views
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G... by DevGAMM Conference
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
DevGAMM Conference3.6K views
Barbie - Brand Strategy Presentation by Erica Santiago
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
Erica Santiago25.1K views
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well by Saba Software
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Saba Software25.2K views
Introduction to C Programming Language by Simplilearn
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming Language
Simplilearn8.4K views
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr... by Palo Alto Software
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...
Palo Alto Software88.4K views
9 Tips for a Work-free Vacation by Weekdone.com
9 Tips for a Work-free Vacation9 Tips for a Work-free Vacation
9 Tips for a Work-free Vacation
Weekdone.com7.2K views
How to Map Your Future by SlideShop.com
How to Map Your FutureHow to Map Your Future
How to Map Your Future
SlideShop.com275.1K views

Social Games und ihr Clean Code