seven deadly sins
DESCRIPTION
Seven ways to kill you Java EE Project.TRANSCRIPT
![Page 1: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/1.jpg)
![Page 2: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/2.jpg)
seven Seven deadly sins.
Seven ways to die.
![Page 4: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/4.jpg)
http://www.devoxx.com/display/UK13/2013/03/22/Devoxx+Code+of+Conduct
![Page 5: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/5.jpg)
http://www.omg-facts.com/Sex/Each-Of-The-Main-Characters-In-Spongebob/13033
![Page 6: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/6.jpg)
Browser
JVM OS
OS
DB OS
HW
HW
HW
Network
![Page 7: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/7.jpg)
LUST
Spongebob
~ „I'm ready. I'm ready. I'm ready. I'm ready. ”
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
![Page 8: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/8.jpg)
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.
![Page 9: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/9.jpg)
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
![Page 10: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/10.jpg)
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
![Page 11: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/11.jpg)
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
![Page 12: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/12.jpg)
Gluttony ~ „Meow”
• 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
![Page 13: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/13.jpg)
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
![Page 14: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/14.jpg)
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
![Page 15: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/15.jpg)
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
![Page 16: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/16.jpg)
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
![Page 17: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/17.jpg)
WRATH
Squidward
~ „Will you please stop leaving your
undergarments on my front lawn? ”
• 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
![Page 18: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/18.jpg)
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/
![Page 19: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/19.jpg)
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/
![Page 20: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/20.jpg)
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/
![Page 21: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/21.jpg)
GREED
Mr.Krabs
~ „Oh, yes you do, no world means no money,
so either save the world, or you're fired! ”
• 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
![Page 22: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/22.jpg)
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/
![Page 23: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/23.jpg)
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
![Page 24: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/24.jpg)
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/
![Page 25: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/25.jpg)
SLOTH ~ „ It's okay. Take your time. ”
• 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
![Page 26: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/26.jpg)
“Efficiency is intelligent laziness.”
No refactoring
No reuse
Copy and Paste
Too simple
No improvement
No peer reviews
![Page 27: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/27.jpg)
PRIDE ~ „ See? He's worse than I thought. ”
• 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
![Page 28: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/28.jpg)
"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
![Page 29: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/29.jpg)
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
![Page 30: Seven Deadly Sins](https://reader033.vdocuments.us/reader033/viewer/2022052213/5550cf87b4c90599308b4d1c/html5/thumbnails/30.jpg)
Q&A