Social games and their clean code_Clean Code Days_Dresden 2013
Upcoming SlideShare
Loading in...5
×
 

Social games and their clean code_Clean Code Days_Dresden 2013

on

  • 896 views

 

Statistics

Views

Total Views
896
Views on SlideShare
896
Embed Views
0

Actions

Likes
2
Downloads
15
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Social games and their clean code_Clean Code Days_Dresden 2013 Social games and their clean code_Clean Code Days_Dresden 2013 Presentation Transcript

  • Social Games and their 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 = special interests
  • 159.79 Mio.
  • Social Games = Games for everybody
  • Berlin
  • 2009 — 20 employees
  • Today — 250 employees
  • 20 Game-Teams
  • Independent development teams
  • Mutable, small teams
  • Consistency
  • Way of working
  • No fixed roles
  • High responsibility
  • Configurability
  • Maintainability
  • Weekly releases
  • Tracking & Reporting
  • Agile way of working
  • Agility
  • Consistency Maintainability Agility improves allows
  • Bubble Island
  • 2009 Start of development
  • 2011 Not more maintainable! http://www.flickr.com/photos/mecklenburg
  • But still successful!
  • Refactoring!
  • 1 Consistency
  • Consistency
  • Consistency
  • Consistency
  • Naming Consistency
  • Naming •Speaking names Consistency
  • Naming •Speaking names •No Abbreviations Consistency
  • Naming •Speaking names •No Abbreviations •1 word per concept Consistency
  • Consistency
  • Consistency
  • Consistency
  • Consistency
  • Consistency
  • Consistency
  • Consistency
  • Consistency
  • Formatting Consistency
  • Formatting •Indentation Consistency
  • Formatting •Indentation •Wrapping braces Consistency
  • Formatting •Indentation •Wrapping braces •Variables first Consistency
  • Formatting •Indentation •Wrapping braces •Variables first •Public in front of non-public methods Consistency
  • Consistency
  • Consistency
  • Comments Consistency
  • Comments •Avoid them if possible Consistency
  • Comments •Avoid them if possible •Usage scenarios Consistency
  • Comments •Avoid them if possible •Usage scenarios ‣ Warnings Consistency
  • Comments •Avoid them if possible •Usage scenarios ‣ Warnings ‣ Simplified explanations Consistency
  • Consistency Consistency
  • Consistency •Naming Consistency
  • Consistency •Naming •Formatting Consistency
  • Consistency •Naming •Formatting •Comments Consistency
  • 2 Maintainability
  • Maintainability
  • Maintainability
  • Maintainability
  • Maintainability
  • Maintainability
  • Methods Maintainability
  • Methods •As small as possible Maintainability
  • Methods •As small as possible •1 level of abstraction Maintainability
  • Methods •As small as possible •1 level of abstraction •1 functionality Maintainability
  • Maintainability
  • Maintainability
  • Maintainability
  • Maintainability
  • Classes Maintainability
  • Classes •1 reason to change (SRP) Maintainability
  • Classes •1 reason to change (SRP) •Only a few instance variables Maintainability
  • Classes •1 reason to change (SRP) •Only a few instance variables •High kohesion Maintainability
  • Maintainability
  • Maintainability
  • Maintainability
  • Maintainability
  • Maintainability
  • Maintainability
  • Data structures Maintainability
  • •Avoid train wrecks Data structures Maintainability
  • •Avoid train wrecks •Use data transfer objects Data structures Maintainability
  • •Avoid train wrecks •Use data transfer objects •Separate production and use of systems Data structures Maintainability
  • Maintainability Maintainability
  • •Methods Maintainability Maintainability
  • •Methods •Classes Maintainability Maintainability
  • •Methods •Classes •Data structures Maintainability Maintainability
  • 3 Agility
  • Islands of knowledge Agility http://flickr.com/photos/92928628@N04
  • Pair Programming Agility
  • •Avoid islands of knowledge Pair Programming Agility
  • •Avoid islands of knowledge •Integration of new team members Pair Programming Agility
  • •Avoid islands of knowledge •Integration of new team members •Collective responsibility Pair Programming Agility
  • Difficult to read & unstructured Agility
  • Regular refactorings Agility
  • •Continuous improvements Regular refactorings Agility
  • •Continuous improvements •The Boy Scout Rule (Robert C. Martin) Regular refactorings Agility
  • No safeguarding Agility http://flickr.com/photos/99995147@N00
  • Unit tests Agility
  • •Safety net Unit tests Agility
  • •Safety net •Facilitated training Unit tests Agility
  • •Safety net •Facilitated training •Playground Unit tests Agility
  • Features late testable Agility http://www.flickr.com/photos/adesigna
  • Continuous integration Agility
  • •Early available software artifacts Continuous integration Agility
  • •Early available software artifacts •Verifiable expectations Continuous integration Agility
  • •Early available software artifacts •Verifiable expectations •Foreseeable problems Continuous integration Agility
  • Agility Agility
  • •Pair Programming Agility Agility
  • •Pair Programming •Regular refactorings Agility Agility
  • •Pair Programming •Regular refactorings •Unit tests Agility Agility
  • •Pair Programming •Regular refactorings •Unit tests •Continuous integration Agility Agility
  • 4 Tools
  • https://www.pivotaltracker.com Tools
  • Tools http://nvie.com/img/2009/12/Screen-shot-2009-12-24-at-11.32.03.png Git-Flow
  • Tools http://jenkins.org
  • Tools CPD & PMD
  • Benefit for Wooga
  • Flexible team building http://www.flickr.com/photos/scoobay
  • High productivity over long period of time http://www.flickr.com/photos/stephenbegin
  • changing requirements http://www.flickr.com/photos/jimculp Rapid response to
  • Clean Code as a common language
  • Less wtf/minute
  • Questions? jobs.wooga.com @StephanPartzsch