seven
Seven deadly sins.
Seven ways to die.
http://blog.eisele.net/
@myfear
http://myfear.com/+
markus@eisele.net
http://en.wikipedia.org/wiki/Code_of_conduct
http://www.omg-facts.com/Sex/Each-Of-The-Main-Characters-In-Spongebob/13033
BrowserBrowser
JVMJVM OSOS
OSOS
DBDB OSOS
HWHW
HWHW
HWHW
NetworkNetwork
LUST
Spongebob
~ „I'm ready. I'm ready. I'm
ready. I'm ready. ”
LUST
Spongebob
a passionate desire for something
our absorbent yellow friend is an extremely lustful
creature
will ofte...
LUST
Golden-taps
http://www.flickr.com/photos/sonictk/338406270/sizes/l/in/photostream/
Least valuable features at all
N...
LUST
Over Engineering
http://www.flickr.com/photos/argonne/3366236801/sizes/l/in/photostream/
(outdated) way of applying ...
Premature Technologies
Remember: We are building things for business
Know the technologies you use
Alpha, Beta, Snapsho...
Not invented here
LUST
http://www.flickr.com/photos/jed-sullivan/5081024719/sizes/o/in/photostream/
Might be a corporate ...
Gluttony
~ „Meow”
Gluttony
• Gary doesn’t do a whole lot besides eating and meowing,
and the meowing is often due to the fact that he is
hun...
Performance
Non-functional requirements are requirements
Not taking care of performance at all
Different kinds of perfo...
Memory
Is less expensive than it was
There are limitations
Avoid creating unnecessary objects and always prefer
to do L...
HttpSession Size
There to track state
Not your “in memory” cache
Control session lifetime
Be java.io.Serializable
http...
Infrastructure
Know and control your Pool Sizes
Every connection allocates a thread
Know your threads; watch Thread-Dum...
WRATH
Squidward
~ „Will you please stop leaving
your undergarments on my front
lawn? ”
WRATH
Squidward
• hates his job at the Krusty Krab
• portrayed as a general failure who refuses to
acknowledge his own per...
Mixing Technologies
Tempted to use Spring in your EE app?
Broad JVM ecosystem (Scala, Play, Akka, GWT, ..)
Know the tec...
Threading and Concurrency
EE was designed to provide an easy abstraction on
concurrency and threading.
Don’t roll your o...
Maintainability
Your no1 enemy is complexity!
Design for understandability
Less is more!
http://www.flickr.com/photos/j...
GREED
Mr.Krabs
~ „Oh, yes you do, no world
means no money, so either
save the world, or you're
fired! ”
GREED
Mr.Krabs
• constantly thinking of ways to turn a profit, even if it
involves taking advantage of his friends or putt...
People and Resources
People are people. They are not resources. They are
not capital. They are humans.
Too many people
...
ENVY
~ „Lady, someone should put you in a box to
drift in the river! ”
• His life’s goal is to steal the Krabby Patty
form...
Weaknesses in EE Specifications
aka application server specific features
Will kill you effectively multiple times
New v...
SLOTH
~ „ It's okay. Take your time. ”
SLOTH
• Patrick is given an award for ‘doing absolutely
nothing longer than anyone else’
Sloth (Latin, Socordia) can entai...
“Efficiency is intelligent laziness.”
No refactoring
No reuse
Copy and Paste
Too simple
No improvement
No peer revie...
PRIDE
~ „ See? He's worse than I
thought. ”
PRIDE
• Sandy is quick to spout off about the greatness of the
Lone Star state or to show off her athleticism in a
karate ...
"No, nothing,' said Dumbledore, and a great
sadness filled his face”
No usability testing
No behavior testing
No accept...
I can do it better … I am better …
See “lust” ..oO(“not invented here”)
 There shouldn’t be an “almighty”
architect/desi...
Seven Deadly Sins
Seven Deadly Sins
Upcoming SlideShare
Loading in …5
×

Seven Deadly Sins

2,189 views

Published on

Have you ever wondered what the worst mistakes in your Java EE projects could be? Let’s call them the seven deadly sins and walk through them to save you and your projects from eternal damnation. This presentation is based on a broad range of project experiences.

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

No Downloads
Views
Total views
2,189
On SlideShare
0
From Embeds
0
Number of Embeds
17
Actions
Shares
0
Downloads
31
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Seven Deadly Sins

  1. 1. seven Seven deadly sins. Seven ways to die.
  2. 2. http://blog.eisele.net/ @myfear http://myfear.com/+ markus@eisele.net
  3. 3. http://en.wikipedia.org/wiki/Code_of_conduct
  4. 4. http://www.omg-facts.com/Sex/Each-Of-The-Main-Characters-In-Spongebob/13033
  5. 5. BrowserBrowser JVMJVM OSOS OSOS DBDB OSOS HWHW HWHW HWHW NetworkNetwork
  6. 6. LUST Spongebob ~ „I'm ready. I'm ready. I'm ready. I'm ready. ”
  7. 7. LUST Spongebob a passionate desire for something our absorbent yellow friend is an extremely lustful creature will often stop at nothing to complete a task Lust or lechery (carnal "luxuria") is an intense desire. It is usually thought of as excessive sexual wants, however the word was originally a general term for desire. Therefore lust could involve the intense desire of money, fame, or power as well. http://en.wikipedia.org/wiki/Seven_deadly_sins
  8. 8. LUST Golden-taps http://www.flickr.com/photos/sonictk/338406270/sizes/l/in/photostream/ Least valuable features at all Not limited to UI – could also be another fancy something. Find metrics to identify them Might be a needed thing.
  9. 9. LUST Over Engineering http://www.flickr.com/photos/argonne/3366236801/sizes/l/in/photostream/ (outdated) way of applying patterns (too many) interfaces Solving tomorrows problems Premature optimization
  10. 10. Premature Technologies Remember: We are building things for business Know the technologies you use Alpha, Beta, Snapshot have different meanings Don’t use everything you know that looks fancy http://www.flickr.com/photos/jdsmith1021/4058827158/sizes/l/in/photostream/ LUST
  11. 11. Not invented here LUST http://www.flickr.com/photos/jed-sullivan/5081024719/sizes/o/in/photostream/ Might be a corporate culture Dangerous if applied to security
  12. 12. Gluttony ~ „Meow”
  13. 13. Gluttony • Gary doesn’t do a whole lot besides eating and meowing, and the meowing is often due to the fact that he is hungry. • Gary is shown eating parts of their couch! Derived from the Latin gluttire, meaning to gulp down or wallow, gluttony (Latin, gula) is the over-indulgence and over-consumption of anything to the point of waste. http://en.wikipedia.org/wiki/Seven_deadly_sins
  14. 14. Performance Non-functional requirements are requirements Not taking care of performance at all Different kinds of performance (development, runtime, etc.) Throwing hardware at the problem Caching (too much) http://www.flickr.com/photos/ryanhayes/4340420545/sizes/z/in/photostream/ Gluttony
  15. 15. Memory Is less expensive than it was There are limitations Avoid creating unnecessary objects and always prefer to do Lazy Initialization Always try to minimize mutability of a class Don't try to outsmart the VM Rely on your Application Server Profile your code http://www.flickr.com/photos/wuerzblog/4608933631/sizes/l/in/photostream/ Gluttony
  16. 16. HttpSession Size There to track state Not your “in memory” cache Control session lifetime Be java.io.Serializable http://www.flickr.com/photos/amanky/353356162/sizes/m/in/photostream/ Gluttony
  17. 17. Infrastructure Know and control your Pool Sizes Every connection allocates a thread Know your threads; watch Thread-Dumps Don’t try to work with your own threads Trust your application server http://www.flickr.com/photos/ecstaticist/3751068291/sizes/l/in/photostream/ Gluttony
  18. 18. WRATH Squidward ~ „Will you please stop leaving your undergarments on my front lawn? ”
  19. 19. WRATH Squidward • hates his job at the Krusty Krab • portrayed as a general failure who refuses to acknowledge his own personal flaws. • a sarcastic sense of humor and resentment toward the society that doesn’t ‘appreciate’ his creativity Wrath (Latin, ira), also known as "rage", may be described as inordinate and uncontrolled feelings of hatred and anger. Wrath, in its purest form, presents with self-destructiveness, violence, and hate that may provoke feuds that can go on for centuries. http://en.wikipedia.org/wiki/Seven_deadly_sins
  20. 20. Mixing Technologies Tempted to use Spring in your EE app? Broad JVM ecosystem (Scala, Play, Akka, GWT, ..) Know the technologies you’re working with and Choose the right tool for the right job http://www.flickr.com/photos/jkunz/3488123225/sizes/l/in/photostream/
  21. 21. Threading and Concurrency EE was designed to provide an easy abstraction on concurrency and threading. Don’t roll your own. Don’t. Ever. If you need to: JCA => EE 7 will give you a valid opportunity to do it the right way (JSR 236) http://www.flickr.com/photos/71262479@N03/6507218983/sizes/l/
  22. 22. Maintainability Your no1 enemy is complexity! Design for understandability Less is more! http://www.flickr.com/photos/james_gordon_losangeles/8411756513/sizes/o/in/photostream/
  23. 23. GREED Mr.Krabs ~ „Oh, yes you do, no world means no money, so either save the world, or you're fired! ”
  24. 24. GREED Mr.Krabs • constantly thinking of ways to turn a profit, even if it involves taking advantage of his friends or putting them in harmful situations Greed (Latin, avaritia), also known as avarice or covetousness, is, like lust and gluttony, a sin of excess. However, greed (as seen by the church) is applied to a very excessive or rapacious desire and pursuit of material possessions. http://en.wikipedia.org/wiki/Seven_deadly_sins
  25. 25. People and Resources People are people. They are not resources. They are not capital. They are humans. Too many people Too many features Two Juniors don’t make a Senior Not licensing helpful tools Cost cutting on environments / developer notebooks http://www.flickr.com/photos/sukanto_debnath/519690623/sizes/o/in/photostream/
  26. 26. ENVY ~ „Lady, someone should put you in a box to drift in the river! ” • His life’s goal is to steal the Krabby Patty formula from his Krabs and drive his primary competitor out of business. Like greed and lust, Envy (Latin, invidia) is characterized by an insatiable desire. Envy is similar to jealousy in that they both feel discontent towards someones traits, status, abilities, or rewards. The difference is the envious also desire that entity and covet it. http://en.wikipedia.org/wiki/Seven_deadly_sins
  27. 27. Weaknesses in EE Specifications aka application server specific features Will kill you effectively multiple times New version of same server Different server Different spec version http://www.flickr.com/photos/bright/106000370/sizes/l/in/photostream/
  28. 28. SLOTH ~ „ It's okay. Take your time. ”
  29. 29. SLOTH • Patrick is given an award for ‘doing absolutely nothing longer than anyone else’ Sloth (Latin, Socordia) can entail different vices. While sloth is sometimes defined as physical laziness, spiritual laziness is emphasized. Failing to develop spiritually is key to becoming guilty of sloth. In the Christian faith, sloth rejects grace and God. http://en.wikipedia.org/wiki/Seven_deadly_sins
  30. 30. “Efficiency is intelligent laziness.” No refactoring No reuse Copy and Paste Too simple No improvement No peer reviews
  31. 31. PRIDE ~ „ See? He's worse than I thought. ”
  32. 32. PRIDE • Sandy is quick to spout off about the greatness of the Lone Star state or to show off her athleticism in a karate match or a weightlifting contest. In almost every list, pride (Latin, superbia), or hubris (Greek), is considered the original and most serious of the seven deadly sins, and the source of the others. http://en.wikipedia.org/wiki/Seven_deadly_sins
  33. 33. "No, nothing,' said Dumbledore, and a great sadness filled his face” No usability testing No behavior testing No acceptance testing No business testing No unit testing No performance testing No security testing
  34. 34. I can do it better … I am better … See “lust” ..oO(“not invented here”)  There shouldn’t be an “almighty” architect/designer/anything Development is a team effort

×