SlideShare uma empresa Scribd logo
1 de 129
Baixar para ler offline
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

Mais conteúdo relacionado

Semelhante a Social Games and their Clean Code

Native look and feel bbui & alicejs
Native look and feel bbui & alicejsNative look and feel bbui & alicejs
Native look and feel bbui & alicejs.toster
 
MTC Spring 2013 - crossplatform woes - robert virkus - 2013-03-13
MTC Spring 2013 -  crossplatform woes - robert virkus - 2013-03-13MTC Spring 2013 -  crossplatform woes - robert virkus - 2013-03-13
MTC Spring 2013 - crossplatform woes - robert virkus - 2013-03-13Enough Software
 
Globant presentation
Globant presentationGlobant presentation
Globant presentationDon Rohrer
 
Ux connect london_fastandbeautiful
Ux connect london_fastandbeautifulUx connect london_fastandbeautiful
Ux connect london_fastandbeautifulDoug Sillars
 
Microsoft Digital Innovations - Mark Vozzo
Microsoft Digital Innovations - Mark VozzoMicrosoft Digital Innovations - Mark Vozzo
Microsoft Digital Innovations - Mark VozzoMark VOZZO
 
Devoxx be fast and beautiful images
Devoxx be fast and beautiful imagesDevoxx be fast and beautiful images
Devoxx be fast and beautiful imagesDoug Sillars
 
BlaBlaCar et la mise en place d'une fonctionnalité FlagFeature
BlaBlaCar et la mise en place d'une fonctionnalité FlagFeatureBlaBlaCar et la mise en place d'une fonctionnalité FlagFeature
BlaBlaCar et la mise en place d'une fonctionnalité FlagFeatureCocoaHeads France
 
Browser Visualization using PNGs Generated by HTML5 Workers on Multicore
Browser Visualization using PNGs Generated by HTML5 Workers on MulticoreBrowser Visualization using PNGs Generated by HTML5 Workers on Multicore
Browser Visualization using PNGs Generated by HTML5 Workers on MulticoreTokyo University of Science
 
What's Now - Gustavo Carriquiry
What's Now - Gustavo CarriquiryWhat's Now - Gustavo Carriquiry
What's Now - Gustavo CarriquiryGeneXus
 
[Docker Tokyo - DockerCon Recap] Updates from Microsoft
[Docker Tokyo - DockerCon Recap] Updates from Microsoft[Docker Tokyo - DockerCon Recap] Updates from Microsoft
[Docker Tokyo - DockerCon Recap] Updates from MicrosoftNaoki (Neo) SATO
 
Firefox Developer Tools
Firefox Developer ToolsFirefox Developer Tools
Firefox Developer Toolsdynamis
 
HTML5: New UI Library for Games - Chad Austin
HTML5: New UI Library for Games - Chad AustinHTML5: New UI Library for Games - Chad Austin
HTML5: New UI Library for Games - Chad AustinChad Austin
 
System Architecture v3.0
System Architecture v3.0System Architecture v3.0
System Architecture v3.0Jon Fortman
 
Mobile Cross-Platform Development in C++
Mobile Cross-Platform Development in C++Mobile Cross-Platform Development in C++
Mobile Cross-Platform Development in C++Ragi Burhum Espinoza
 
Cloud Computing in Mobile
Cloud Computing in MobileCloud Computing in Mobile
Cloud Computing in MobileSVWB
 
Webcamp fastandbeautiful
Webcamp fastandbeautifulWebcamp fastandbeautiful
Webcamp fastandbeautifulDoug Sillars
 
[Webinar] Announcing the Camunda Cloud Public Beta - February 2020
[Webinar] Announcing the Camunda Cloud Public Beta - February 2020[Webinar] Announcing the Camunda Cloud Public Beta - February 2020
[Webinar] Announcing the Camunda Cloud Public Beta - February 2020camunda services GmbH
 
ICON Switzerland - IBM Domino 10 Demo
ICON Switzerland - IBM Domino 10 DemoICON Switzerland - IBM Domino 10 Demo
ICON Switzerland - IBM Domino 10 DemoBelsoft
 

Semelhante a Social Games and their Clean Code (20)

Native look and feel bbui & alicejs
Native look and feel bbui & alicejsNative look and feel bbui & alicejs
Native look and feel bbui & alicejs
 
MTC Spring 2013 - crossplatform woes - robert virkus - 2013-03-13
MTC Spring 2013 -  crossplatform woes - robert virkus - 2013-03-13MTC Spring 2013 -  crossplatform woes - robert virkus - 2013-03-13
MTC Spring 2013 - crossplatform woes - robert virkus - 2013-03-13
 
Globant presentation
Globant presentationGlobant presentation
Globant presentation
 
Ux connect london_fastandbeautiful
Ux connect london_fastandbeautifulUx connect london_fastandbeautiful
Ux connect london_fastandbeautiful
 
Microsoft Digital Innovations - Mark Vozzo
Microsoft Digital Innovations - Mark VozzoMicrosoft Digital Innovations - Mark Vozzo
Microsoft Digital Innovations - Mark Vozzo
 
Devoxx be fast and beautiful images
Devoxx be fast and beautiful imagesDevoxx be fast and beautiful images
Devoxx be fast and beautiful images
 
BlaBlaCar et la mise en place d'une fonctionnalité FlagFeature
BlaBlaCar et la mise en place d'une fonctionnalité FlagFeatureBlaBlaCar et la mise en place d'une fonctionnalité FlagFeature
BlaBlaCar et la mise en place d'une fonctionnalité FlagFeature
 
Browser Visualization using PNGs Generated by HTML5 Workers on Multicore
Browser Visualization using PNGs Generated by HTML5 Workers on MulticoreBrowser Visualization using PNGs Generated by HTML5 Workers on Multicore
Browser Visualization using PNGs Generated by HTML5 Workers on Multicore
 
Intro to sitespeed.io
Intro to sitespeed.ioIntro to sitespeed.io
Intro to sitespeed.io
 
What's Now - Gustavo Carriquiry
What's Now - Gustavo CarriquiryWhat's Now - Gustavo Carriquiry
What's Now - Gustavo Carriquiry
 
[Docker Tokyo - DockerCon Recap] Updates from Microsoft
[Docker Tokyo - DockerCon Recap] Updates from Microsoft[Docker Tokyo - DockerCon Recap] Updates from Microsoft
[Docker Tokyo - DockerCon Recap] Updates from Microsoft
 
Firefox Developer Tools
Firefox Developer ToolsFirefox Developer Tools
Firefox Developer Tools
 
Adobe max 2010
Adobe max 2010Adobe max 2010
Adobe max 2010
 
HTML5: New UI Library for Games - Chad Austin
HTML5: New UI Library for Games - Chad AustinHTML5: New UI Library for Games - Chad Austin
HTML5: New UI Library for Games - Chad Austin
 
System Architecture v3.0
System Architecture v3.0System Architecture v3.0
System Architecture v3.0
 
Mobile Cross-Platform Development in C++
Mobile Cross-Platform Development in C++Mobile Cross-Platform Development in C++
Mobile Cross-Platform Development in C++
 
Cloud Computing in Mobile
Cloud Computing in MobileCloud Computing in Mobile
Cloud Computing in Mobile
 
Webcamp fastandbeautiful
Webcamp fastandbeautifulWebcamp fastandbeautiful
Webcamp fastandbeautiful
 
[Webinar] Announcing the Camunda Cloud Public Beta - February 2020
[Webinar] Announcing the Camunda Cloud Public Beta - February 2020[Webinar] Announcing the Camunda Cloud Public Beta - February 2020
[Webinar] Announcing the Camunda Cloud Public Beta - February 2020
 
ICON Switzerland - IBM Domino 10 Demo
ICON Switzerland - IBM Domino 10 DemoICON Switzerland - IBM Domino 10 Demo
ICON Switzerland - IBM Domino 10 Demo
 

Último

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

Social Games and their Clean Code