“Writing code that lasts” … or writing code you won’t hate tomorrow.

1,989 views

Published on

As developers we write code everyday, only to frown at it a week after that. Why do we have such a hard time with code written by others and ourselves, this raging desire to rewrite everything we see? Writing code that survives the test of time and self judgment is a matter of clarity and simplicity. Let's talk about growing, learning and improving our code with calisthenics, readability and good design.

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

No Downloads
Views
Total views
1,989
On SlideShare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
113
Comments
0
Likes
38
Embeds 0
No embeds

No notes for slide

“Writing code that lasts” … or writing code you won’t hate tomorrow.

  1. 1. Writing code that lasts. Rafael Dohms
 @rdohms photo: djandyw.com #ocforphp
  2. 2. Writing code 
 you won’t hate tomorrow. Rafael Dohms
 @rdohms photo: djandyw.com #ocforphp
  3. 3. Let me introduce you to someone…
  4. 4. No Tests. Wrote his own framework. 500 line methods. Used Singletons! shhh.. don’t tell Grumpy. .. and used it. .. and every other anti-pattern out there. … not even methods, they were functions
  5. 5. photo: Rob Allen (@akrabat)
  6. 6. REWRITE ALL THE CODE! image: hyperboleandahalf
  7. 7. Real Developers, SHIP STUFF. photo: Glyn Lowe Photoworks
  8. 8. How do we find balance? photo: Kalexanderson
  9. 9. Code has an expiration date photo: CarbonNYC
  10. 10. Code is perishable, it rots. photo by: massdistraction
  11. 11. Code Evolves photo by: kevin dooley
  12. 12. Languages evolve. photo by: raneko
  13. 13. You evolve. photo by: Kaptain Kobold
  14. 14. Complexity 
 kills Comprehension photo: osbornb
  15. 15. Bad Design photo: miskan
  16. 16. Bad specs
  17. 17. NIH source: Urban dictionary photo by: John 'K'
  18. 18. NIH | nɒt ɪnˈventɪd hɪə |
 Not Invented Here —The German art of humiliating any technology, agricultural product, or (medical) scientific work that has not been invented or produced in Germany, Switzerland, or Austria. source: Urban dictionary photo by: John 'K'
  19. 19. The Solution™ photo: Ian Sane
  20. 20. Improve code
  21. 21. Improve code make it easier to comprehend
  22. 22. Improve code make it easier to comprehend make it flexible
  23. 23. Improve code make it easier to comprehend make it flexible make it tested
  24. 24. Improve code make it easier to comprehend make it flexible make it tested make it easier to replace, refactor
  25. 25. Improve code make it easier to comprehend make it flexible make it tested make it easier to replace, refactor make it not exist
  26. 26. Testing photo by: jeffkrause
  27. 27. Good Design Concepts
  28. 28. SOLID Single Responsibility
 Open and Close
 Liskov substitution
 Interface Segregation
 Dependency Inversion photo by j_regan
  29. 29. photo by lofink STUPID Singleton
 Tight Coupling
 Untestability
 Premature Optimization
 Indescriptive Naming
 Duplication
  30. 30. Design Patterns photo by halloweenstock
  31. 31. Composer
  32. 32. PIE Proudly
 Invented
 Elsewhere
  33. 33. guzzlehttp/guzzle HTTP client for RESTful API clients photo by j_regan
  34. 34. league/tactician A flexible CommandBus implementation
  35. 35. Readability photo: Morgenland
  36. 36. paragraphs photo: Trossachs Photography
  37. 37. whitespace
  38. 38. R&D Team for MIH/Naspers São PauloCape Town
  39. 39. Object Calisthenics photo by: boston_public_library
  40. 40. Calisthenics /ˌkaləsˈTHeniks/ Calisthenics are a form of dynamic exercise consisting of a variety of simple, often rhythmical, movements, generally using minimal equipment or apparatus. photo by: boston_public_library
  41. 41. Its about perception, not rules or standards photo by: david_a_l
  42. 42. #1 Only one indentation level per method. photo by: justinliew
  43. 43. #2 Do not 
 use else photo by: justinliew
  44. 44. #3 Wrap primitive types, if they contain behavior photo by: justinliew
  45. 45. #4 Only one 
 -> per line photo by: justinliew
  46. 46. #5 Do not abbreviate. photo by: justinliew
  47. 47. #6 Keep your classes small. photo by: justinliew
  48. 48. #7 Limit your instance variables to less then 5 photo by: justinliew
  49. 49. #8 Use first class collections photo by: justinliew
  50. 50. #9 Use getters and setters. photo by: justinliew
  51. 51. #10 Document your code. photo by: justinliew
  52. 52. Your turn.
  53. 53. Improve yourself!
  54. 54. Read lots of code!
  55. 55. Write simple code.
  56. 56. Try Object Calisthenics for a month.
  57. 57. Use someone else’s code.
  58. 58. Share bite size libraries.
  59. 59. Thank you. http://slides.doh.ms http://doh.ms @rdohms we are hiring! http://tech.sym.bid/jobs
  60. 60. http://l.doh.ms/oc-material Video recording Slides Books Resources on 
 Object Calisthenics

×