Your SlideShare is downloading. ×
Simplicity
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Simplicity

201
views

Published on

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
201
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. simplicity .demystified osvaldas grigas @ogrigas | ogrigas@gmail.com
  • 2. inspired by Dan North Rich Hickey
  • 3. Computing's central challenge, "How not to make a mess of it", has not been met. Edsger Dijkstra (1980)
  • 4. what "simple" ain’t ... familiar / convenient small / concise beautiful / elegant
  • 5. "nothing is more simple than a single giant button"
  • 6. from the agile principles “Simplicity -- the art of maximizing the amount of work not done -- is essential.”
  • 7. from the agile principles “Simplicity -- the art of maximizing the amount of work not done -- is essential.” YAGNI
  • 8. from the agile principles “Simplicity -- the art of maximizing the amount of work not done -- is essential.” YAGNI
  • 9. from the agile principles “Harness change for the customer's competitive advantage.”
  • 10. Complexity is the silent killer of delivering the right software, or change, at the right time. Russ Miles
  • 11. from the agile principles “Technical excellence and good design enhances agility.”
  • 12. Design is there to enable you to keep changing the software easily. Martin Fowler
  • 13. from the agile principles “Developers should maintain a constant pace indefinitely.”
  • 14. Once your software is of a certain size, complexity is gonna dominate what you can do. Rich Hickey
  • 15. ultimate definition of simplicity
  • 16. ultimate definition of simplicity simple == not(complex)
  • 17. complexity .demystified osvaldas grigas @ogrigas | ogrigas@gmail.com
  • 18. mixed responsibilities
  • 19. dependencies & coupling
  • 20. state & side effects
  • 21. mental strain
  • 22. essential complexit y
  • 23. tal den nci i xity ple com essential complexit y
  • 24. y code our essential complexit y
  • 25. rie s lib ra & frameworks y code our essential complexit y
  • 26. lib ra rie s & runtime ge ua ng & frameworks la y code our essential complexit y
  • 27. complexity brought by your code supported by: oring fact re ools t autoimport code generators
  • 28. complexity brought by libraries supported by: gem nuget maven
  • 29. complexity brought by frameworks ORM WEB IoC
  • 30. the law of leaky abstractions
  • 31. complexity brought by the programming language inheritance-based design unconstrained mutability lack of expressivity
  • 32. making things simple
  • 33. TDD, BDD & refactoring
  • 34. modularity
  • 35. use values and pure functions
  • 36. minimize direct dependencies introduce indirection follow the law of demeter
  • 37. single responsibility principle & composition wget -qO- http://c2.com/ | tr -cs '[:alpha:]' 'n' | sort | uniq
  • 38. be ignorant and oblivious
  • 39. choose libraries wisely “We choose Camel over Spring-Integration because the fluent API is really nice.” accepted answer
  • 40. prefer libraries over frameworks
  • 41. step out of your comfort zone

×