0
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-o...
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
Upcoming SlideShare
Loading in...5
×

Social games and their clean code_Clean Code Days_Dresden 2013

1,097

Published on

Published in: Technology, Sports
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,097
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
20
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Transcript of "Social games and their clean code_Clean Code Days_Dresden 2013"

  1. 1. Social Games and their Clean Code
  2. 2. http://www.vgchartz.com/gamedb/?name=fifa+soccer+13 || http://cartelthemes.com/fifa-13-193-hd-wallpapers.html 12.79 Mio.
  3. 3. 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
  4. 4. Video Games = special interests
  5. 5. 159.79 Mio.
  6. 6. Social Games = Games for everybody
  7. 7. Berlin
  8. 8. 2009 — 20 employees
  9. 9. Today — 250 employees
  10. 10. 20 Game-Teams
  11. 11. Independent development teams
  12. 12. Mutable, small teams
  13. 13. Consistency
  14. 14. Way of working
  15. 15. No fixed roles
  16. 16. High responsibility
  17. 17. Configurability
  18. 18. Maintainability
  19. 19. Weekly releases
  20. 20. Tracking & Reporting
  21. 21. Agile way of working
  22. 22. Agility
  23. 23. Consistency Maintainability Agility improves allows
  24. 24. Bubble Island
  25. 25. 2009 Start of development
  26. 26. 2011 Not more maintainable! http://www.flickr.com/photos/mecklenburg
  27. 27. But still successful!
  28. 28. Refactoring!
  29. 29. 1 Consistency
  30. 30. Consistency
  31. 31. Consistency
  32. 32. Consistency
  33. 33. Naming Consistency
  34. 34. Naming •Speaking names Consistency
  35. 35. Naming •Speaking names •No Abbreviations Consistency
  36. 36. Naming •Speaking names •No Abbreviations •1 word per concept Consistency
  37. 37. Consistency
  38. 38. Consistency
  39. 39. Consistency
  40. 40. Consistency
  41. 41. Consistency
  42. 42. Consistency
  43. 43. Consistency
  44. 44. Consistency
  45. 45. Formatting Consistency
  46. 46. Formatting •Indentation Consistency
  47. 47. Formatting •Indentation •Wrapping braces Consistency
  48. 48. Formatting •Indentation •Wrapping braces •Variables first Consistency
  49. 49. Formatting •Indentation •Wrapping braces •Variables first •Public in front of non-public methods Consistency
  50. 50. Consistency
  51. 51. Consistency
  52. 52. Comments Consistency
  53. 53. Comments •Avoid them if possible Consistency
  54. 54. Comments •Avoid them if possible •Usage scenarios Consistency
  55. 55. Comments •Avoid them if possible •Usage scenarios ‣ Warnings Consistency
  56. 56. Comments •Avoid them if possible •Usage scenarios ‣ Warnings ‣ Simplified explanations Consistency
  57. 57. Consistency Consistency
  58. 58. Consistency •Naming Consistency
  59. 59. Consistency •Naming •Formatting Consistency
  60. 60. Consistency •Naming •Formatting •Comments Consistency
  61. 61. 2 Maintainability
  62. 62. Maintainability
  63. 63. Maintainability
  64. 64. Maintainability
  65. 65. Maintainability
  66. 66. Maintainability
  67. 67. Methods Maintainability
  68. 68. Methods •As small as possible Maintainability
  69. 69. Methods •As small as possible •1 level of abstraction Maintainability
  70. 70. Methods •As small as possible •1 level of abstraction •1 functionality Maintainability
  71. 71. Maintainability
  72. 72. Maintainability
  73. 73. Maintainability
  74. 74. Maintainability
  75. 75. Classes Maintainability
  76. 76. Classes •1 reason to change (SRP) Maintainability
  77. 77. Classes •1 reason to change (SRP) •Only a few instance variables Maintainability
  78. 78. Classes •1 reason to change (SRP) •Only a few instance variables •High kohesion Maintainability
  79. 79. Maintainability
  80. 80. Maintainability
  81. 81. Maintainability
  82. 82. Maintainability
  83. 83. Maintainability
  84. 84. Maintainability
  85. 85. Data structures Maintainability
  86. 86. •Avoid train wrecks Data structures Maintainability
  87. 87. •Avoid train wrecks •Use data transfer objects Data structures Maintainability
  88. 88. •Avoid train wrecks •Use data transfer objects •Separate production and use of systems Data structures Maintainability
  89. 89. Maintainability Maintainability
  90. 90. •Methods Maintainability Maintainability
  91. 91. •Methods •Classes Maintainability Maintainability
  92. 92. •Methods •Classes •Data structures Maintainability Maintainability
  93. 93. 3 Agility
  94. 94. Islands of knowledge Agility http://flickr.com/photos/92928628@N04
  95. 95. Pair Programming Agility
  96. 96. •Avoid islands of knowledge Pair Programming Agility
  97. 97. •Avoid islands of knowledge •Integration of new team members Pair Programming Agility
  98. 98. •Avoid islands of knowledge •Integration of new team members •Collective responsibility Pair Programming Agility
  99. 99. Difficult to read & unstructured Agility
  100. 100. Regular refactorings Agility
  101. 101. •Continuous improvements Regular refactorings Agility
  102. 102. •Continuous improvements •The Boy Scout Rule (Robert C. Martin) Regular refactorings Agility
  103. 103. No safeguarding Agility http://flickr.com/photos/99995147@N00
  104. 104. Unit tests Agility
  105. 105. •Safety net Unit tests Agility
  106. 106. •Safety net •Facilitated training Unit tests Agility
  107. 107. •Safety net •Facilitated training •Playground Unit tests Agility
  108. 108. Features late testable Agility http://www.flickr.com/photos/adesigna
  109. 109. Continuous integration Agility
  110. 110. •Early available software artifacts Continuous integration Agility
  111. 111. •Early available software artifacts •Verifiable expectations Continuous integration Agility
  112. 112. •Early available software artifacts •Verifiable expectations •Foreseeable problems Continuous integration Agility
  113. 113. Agility Agility
  114. 114. •Pair Programming Agility Agility
  115. 115. •Pair Programming •Regular refactorings Agility Agility
  116. 116. •Pair Programming •Regular refactorings •Unit tests Agility Agility
  117. 117. •Pair Programming •Regular refactorings •Unit tests •Continuous integration Agility Agility
  118. 118. 4 Tools
  119. 119. https://www.pivotaltracker.com Tools
  120. 120. Tools http://nvie.com/img/2009/12/Screen-shot-2009-12-24-at-11.32.03.png Git-Flow
  121. 121. Tools http://jenkins.org
  122. 122. Tools CPD & PMD
  123. 123. Benefit for Wooga
  124. 124. Flexible team building http://www.flickr.com/photos/scoobay
  125. 125. High productivity over long period of time http://www.flickr.com/photos/stephenbegin
  126. 126. changing requirements http://www.flickr.com/photos/jimculp Rapid response to
  127. 127. Clean Code as a common language
  128. 128. Less wtf/minute
  129. 129. Questions? jobs.wooga.com @StephanPartzsch
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×