30

Seven Deadly Sins

Embed Size (px)

DESCRIPTION

Seven ways to kill you Java EE Project.

Citation preview

Page 1: Seven Deadly Sins
Page 2: Seven Deadly Sins

seven Seven deadly sins.

Seven ways to die.

Page 3: Seven Deadly Sins

http://blog.eisele.net/

@myfear

http://myfear.com/+

[email protected]

Page 4: Seven Deadly Sins

http://www.devoxx.com/display/UK13/2013/03/22/Devoxx+Code+of+Conduct

Page 5: Seven Deadly Sins

http://www.omg-facts.com/Sex/Each-Of-The-Main-Characters-In-Spongebob/13033

Page 6: Seven Deadly Sins

Browser

JVM OS

OS

DB OS

HW

HW

HW

Network

Page 7: Seven Deadly Sins

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

“Efficiency is intelligent laziness.”

No refactoring

No reuse

Copy and Paste

Too simple

No improvement

No peer reviews

Page 27: Seven Deadly Sins

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

"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

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

Q&A