SlideShare a Scribd company logo
1 of 30
Download to read offline
seven
Seven deadly sins.
Seven ways to die.
http://blog.eisele.net/
@myfear
http://myfear.com/+
markus@eisele.net
http://www.devoxx.com/display/UK13/2013/03/22/Devoxx+Code+of+Conduct
http://www.omg-facts.com/Sex/Each-Of-The-Main-Characters-In-Spongebob/13033
Browser   OS   HW




                    Network
 JVM      OS   HW




  DB      OS   HW
~ „I'm ready. I'm ready. I'm ready. I'm ready. ”
 LUST
             a passionate desire for something
             our absorbent yellow friend is an extremely lustful
              creature
             will often stop at nothing to complete a task




Spongebob   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
Golden-taps


                                                                          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.


       LUST
http://www.flickr.com/photos/sonictk/338406270/sizes/l/in/photostream/
Over Engineering

                                                                           (outdated) way of applying patterns
                                                                           (too many) interfaces
                                                                           Solving tomorrows problems
                                                                           Premature optimization




LUST
http://www.flickr.com/photos/argonne/3366236801/sizes/l/in/photostream/
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

  LUST
http://www.flickr.com/photos/jdsmith1021/4058827158/sizes/l/in/photostream/
Not invented here

                                                                                Might be a corporate culture
                                                                                Dangerous if applied to security




   LUST
http://www.flickr.com/photos/jed-sullivan/5081024719/sizes/o/in/photostream/
~ „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
             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
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)

Gluttony
 http://www.flickr.com/photos/ryanhayes/4340420545/sizes/z/in/photostream/
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
Gluttony                                                                Profile your code

 http://www.flickr.com/photos/wuerzblog/4608933631/sizes/l/in/photostream/
HttpSession Size

                                                                      There to track state
                                                                      Not your “in memory” cache
                                                                      Control session lifetime
                                                                      Be java.io.Serializable



Gluttony
 http://www.flickr.com/photos/amanky/353356162/sizes/m/in/photostream/
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


Gluttony
 http://www.flickr.com/photos/ecstaticist/3751068291/sizes/l/in/photostream/
~ „Will you please stop leaving your
WRATH       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




Squidward
            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
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/
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/
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/
~ „Oh, yes you do, no world means no money,
GREED      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




Mr.Krabs
           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
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/
~ „Lady, someone should put you in a box to
ENVY   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
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/
~ „ It's okay. Take your time. ”
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
“Efficiency is intelligent laziness.”

 No refactoring
 No reuse
 Copy and Paste
 Too simple
 No improvement
 No peer reviews
~ „ 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 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
"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
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
Q&A

More Related Content

Viewers also liked

Swiss army knife Spring
Swiss army knife SpringSwiss army knife Spring
Swiss army knife SpringMario Fusco
 
Scala - where objects and functions meet
Scala - where objects and functions meetScala - where objects and functions meet
Scala - where objects and functions meetMario Fusco
 
Why we cannot ignore Functional Programming
Why we cannot ignore Functional ProgrammingWhy we cannot ignore Functional Programming
Why we cannot ignore Functional ProgrammingMario Fusco
 
FP in Java - Project Lambda and beyond
FP in Java - Project Lambda and beyondFP in Java - Project Lambda and beyond
FP in Java - Project Lambda and beyondMario Fusco
 
If You Think You Can Stay Away from Functional Programming, You Are Wrong
If You Think You Can Stay Away from Functional Programming, You Are WrongIf You Think You Can Stay Away from Functional Programming, You Are Wrong
If You Think You Can Stay Away from Functional Programming, You Are WrongMario Fusco
 
Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...Mario Fusco
 
Reactive Programming for a demanding world: building event-driven and respons...
Reactive Programming for a demanding world: building event-driven and respons...Reactive Programming for a demanding world: building event-driven and respons...
Reactive Programming for a demanding world: building event-driven and respons...Mario Fusco
 
Comparing different concurrency models on the JVM
Comparing different concurrency models on the JVMComparing different concurrency models on the JVM
Comparing different concurrency models on the JVMMario Fusco
 
Real world DSL - making technical and business people speaking the same language
Real world DSL - making technical and business people speaking the same languageReal world DSL - making technical and business people speaking the same language
Real world DSL - making technical and business people speaking the same languageMario Fusco
 

Viewers also liked (12)

Swiss army knife Spring
Swiss army knife SpringSwiss army knife Spring
Swiss army knife Spring
 
Scala - where objects and functions meet
Scala - where objects and functions meetScala - where objects and functions meet
Scala - where objects and functions meet
 
Why we cannot ignore Functional Programming
Why we cannot ignore Functional ProgrammingWhy we cannot ignore Functional Programming
Why we cannot ignore Functional Programming
 
FP in Java - Project Lambda and beyond
FP in Java - Project Lambda and beyondFP in Java - Project Lambda and beyond
FP in Java - Project Lambda and beyond
 
If You Think You Can Stay Away from Functional Programming, You Are Wrong
If You Think You Can Stay Away from Functional Programming, You Are WrongIf You Think You Can Stay Away from Functional Programming, You Are Wrong
If You Think You Can Stay Away from Functional Programming, You Are Wrong
 
Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...
 
Java 8 Workshop
Java 8 WorkshopJava 8 Workshop
Java 8 Workshop
 
Hammurabi
HammurabiHammurabi
Hammurabi
 
Reactive Programming for a demanding world: building event-driven and respons...
Reactive Programming for a demanding world: building event-driven and respons...Reactive Programming for a demanding world: building event-driven and respons...
Reactive Programming for a demanding world: building event-driven and respons...
 
Comparing different concurrency models on the JVM
Comparing different concurrency models on the JVMComparing different concurrency models on the JVM
Comparing different concurrency models on the JVM
 
Real world DSL - making technical and business people speaking the same language
Real world DSL - making technical and business people speaking the same languageReal world DSL - making technical and business people speaking the same language
Real world DSL - making technical and business people speaking the same language
 
Monadic Java
Monadic JavaMonadic Java
Monadic Java
 

Similar to Seven Deadly Sins

10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at FlickrJohn Allspaw
 
Dom XSS: Encounters of the3rd kind
Dom XSS: Encounters of the3rd kindDom XSS: Encounters of the3rd kind
Dom XSS: Encounters of the3rd kindBishan Singh
 
Dev and Ops Collaboration and Awareness at Etsy and Flickr
Dev and Ops Collaboration and Awareness at Etsy and FlickrDev and Ops Collaboration and Awareness at Etsy and Flickr
Dev and Ops Collaboration and Awareness at Etsy and FlickrJohn Allspaw
 
Striking a Balance: Middle Ground in Front-End Development
Striking a Balance: Middle Ground in Front-End DevelopmentStriking a Balance: Middle Ground in Front-End Development
Striking a Balance: Middle Ground in Front-End DevelopmentNathan Smith
 
OWASP Poland Day 2018 - Andrzej Dyjak - Zero Trust Theorem
OWASP Poland Day 2018 - Andrzej Dyjak - Zero Trust TheoremOWASP Poland Day 2018 - Andrzej Dyjak - Zero Trust Theorem
OWASP Poland Day 2018 - Andrzej Dyjak - Zero Trust TheoremOWASP
 
Performance - a challenging craft
Performance  - a challenging craftPerformance  - a challenging craft
Performance - a challenging craftFabian Lange
 
Web Performance Optimization: The Silver Bullet of SEO and UX
Web Performance Optimization: The Silver Bullet of SEO and UXWeb Performance Optimization: The Silver Bullet of SEO and UX
Web Performance Optimization: The Silver Bullet of SEO and UXJonathon Colman
 
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!Julien Biezemans
 
The Forgotten Customer (XPDays 2011)
The Forgotten Customer (XPDays 2011)The Forgotten Customer (XPDays 2011)
The Forgotten Customer (XPDays 2011)Thomas Krause
 
Python + NoSQL in Animations
Python + NoSQL in AnimationsPython + NoSQL in Animations
Python + NoSQL in AnimationsShuen-Huei Guan
 
Adversary Emulation and Cracking The Bridge – Overview EMERSON EDUARDO RODRIGUES
Adversary Emulation and Cracking The Bridge – Overview EMERSON EDUARDO RODRIGUESAdversary Emulation and Cracking The Bridge – Overview EMERSON EDUARDO RODRIGUES
Adversary Emulation and Cracking The Bridge – Overview EMERSON EDUARDO RODRIGUESEMERSON EDUARDO RODRIGUES
 
Cloud Architecture + Cloud Architects / Jan 24th 2012
Cloud Architecture + Cloud Architects / Jan 24th 2012Cloud Architecture + Cloud Architects / Jan 24th 2012
Cloud Architecture + Cloud Architects / Jan 24th 2012Lothar Wieske
 
Picture perfect hacks with flickr API
Picture perfect hacks with flickr APIPicture perfect hacks with flickr API
Picture perfect hacks with flickr APISudar Muthu
 
The Forgotten Customer (Socrates 2011)
The Forgotten Customer (Socrates 2011)The Forgotten Customer (Socrates 2011)
The Forgotten Customer (Socrates 2011)Thomas Krause
 
Web Security - Introduction
Web Security - IntroductionWeb Security - Introduction
Web Security - IntroductionSQALab
 
Web Security - Introduction v.1.3
Web Security - Introduction v.1.3Web Security - Introduction v.1.3
Web Security - Introduction v.1.3Oles Seheda
 
Ember.js - scratching the surface
Ember.js - scratching the surfaceEmber.js - scratching the surface
Ember.js - scratching the surfaceUģis Ozols
 
Gatling Tool in Action at Devoxx 2012
Gatling Tool in Action at Devoxx 2012Gatling Tool in Action at Devoxx 2012
Gatling Tool in Action at Devoxx 2012slandelle
 

Similar to Seven Deadly Sins (20)

10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
 
Dom XSS: Encounters of the3rd kind
Dom XSS: Encounters of the3rd kindDom XSS: Encounters of the3rd kind
Dom XSS: Encounters of the3rd kind
 
Dev and Ops Collaboration and Awareness at Etsy and Flickr
Dev and Ops Collaboration and Awareness at Etsy and FlickrDev and Ops Collaboration and Awareness at Etsy and Flickr
Dev and Ops Collaboration and Awareness at Etsy and Flickr
 
Striking a Balance: Middle Ground in Front-End Development
Striking a Balance: Middle Ground in Front-End DevelopmentStriking a Balance: Middle Ground in Front-End Development
Striking a Balance: Middle Ground in Front-End Development
 
OWASP Poland Day 2018 - Andrzej Dyjak - Zero Trust Theorem
OWASP Poland Day 2018 - Andrzej Dyjak - Zero Trust TheoremOWASP Poland Day 2018 - Andrzej Dyjak - Zero Trust Theorem
OWASP Poland Day 2018 - Andrzej Dyjak - Zero Trust Theorem
 
Performance - a challenging craft
Performance  - a challenging craftPerformance  - a challenging craft
Performance - a challenging craft
 
Web Performance Optimization: The Silver Bullet of SEO and UX
Web Performance Optimization: The Silver Bullet of SEO and UXWeb Performance Optimization: The Silver Bullet of SEO and UX
Web Performance Optimization: The Silver Bullet of SEO and UX
 
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
 
DevOps Note 20120224
DevOps Note 20120224DevOps Note 20120224
DevOps Note 20120224
 
Seven Deadly Sins
Seven Deadly SinsSeven Deadly Sins
Seven Deadly Sins
 
The Forgotten Customer (XPDays 2011)
The Forgotten Customer (XPDays 2011)The Forgotten Customer (XPDays 2011)
The Forgotten Customer (XPDays 2011)
 
Python + NoSQL in Animations
Python + NoSQL in AnimationsPython + NoSQL in Animations
Python + NoSQL in Animations
 
Adversary Emulation and Cracking The Bridge – Overview EMERSON EDUARDO RODRIGUES
Adversary Emulation and Cracking The Bridge – Overview EMERSON EDUARDO RODRIGUESAdversary Emulation and Cracking The Bridge – Overview EMERSON EDUARDO RODRIGUES
Adversary Emulation and Cracking The Bridge – Overview EMERSON EDUARDO RODRIGUES
 
Cloud Architecture + Cloud Architects / Jan 24th 2012
Cloud Architecture + Cloud Architects / Jan 24th 2012Cloud Architecture + Cloud Architects / Jan 24th 2012
Cloud Architecture + Cloud Architects / Jan 24th 2012
 
Picture perfect hacks with flickr API
Picture perfect hacks with flickr APIPicture perfect hacks with flickr API
Picture perfect hacks with flickr API
 
The Forgotten Customer (Socrates 2011)
The Forgotten Customer (Socrates 2011)The Forgotten Customer (Socrates 2011)
The Forgotten Customer (Socrates 2011)
 
Web Security - Introduction
Web Security - IntroductionWeb Security - Introduction
Web Security - Introduction
 
Web Security - Introduction v.1.3
Web Security - Introduction v.1.3Web Security - Introduction v.1.3
Web Security - Introduction v.1.3
 
Ember.js - scratching the surface
Ember.js - scratching the surfaceEmber.js - scratching the surface
Ember.js - scratching the surface
 
Gatling Tool in Action at Devoxx 2012
Gatling Tool in Action at Devoxx 2012Gatling Tool in Action at Devoxx 2012
Gatling Tool in Action at Devoxx 2012
 

More from Markus Eisele

Sustainable Software Architecture - Open Tour DACH '22
Sustainable Software Architecture - Open Tour DACH '22Sustainable Software Architecture - Open Tour DACH '22
Sustainable Software Architecture - Open Tour DACH '22Markus Eisele
 
Going from java message service (jms) to eda
Going from java message service (jms) to eda Going from java message service (jms) to eda
Going from java message service (jms) to eda Markus Eisele
 
Let's be real. Quarkus in the wild.
Let's be real. Quarkus in the wild.Let's be real. Quarkus in the wild.
Let's be real. Quarkus in the wild.Markus Eisele
 
What happens when unicorns drink coffee
What happens when unicorns drink coffeeWhat happens when unicorns drink coffee
What happens when unicorns drink coffeeMarkus Eisele
 
Stateful on Stateless - The Future of Applications in the Cloud
Stateful on Stateless - The Future of Applications in the CloudStateful on Stateless - The Future of Applications in the Cloud
Stateful on Stateless - The Future of Applications in the CloudMarkus Eisele
 
Java in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/MJava in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/MMarkus Eisele
 
Java in the Age of Containers and Serverless
Java in the Age of Containers and ServerlessJava in the Age of Containers and Serverless
Java in the Age of Containers and ServerlessMarkus Eisele
 
Migrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systemsMigrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systemsMarkus Eisele
 
Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19Markus Eisele
 
Cloud wars - A LavaOne discussion in seven slides
Cloud wars - A LavaOne discussion in seven slidesCloud wars - A LavaOne discussion in seven slides
Cloud wars - A LavaOne discussion in seven slidesMarkus Eisele
 
Streaming to a new Jakarta EE
Streaming to a new Jakarta EEStreaming to a new Jakarta EE
Streaming to a new Jakarta EEMarkus Eisele
 
Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained  Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained Markus Eisele
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolithMarkus Eisele
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolithMarkus Eisele
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithMarkus Eisele
 
Architecting for failure - Why are distributed systems hard?
Architecting for failure - Why are distributed systems hard?Architecting for failure - Why are distributed systems hard?
Architecting for failure - Why are distributed systems hard?Markus Eisele
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolith Stay productive while slicing up the monolith
Stay productive while slicing up the monolith Markus Eisele
 
Nine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take youNine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take youMarkus Eisele
 
How lagom helps to build real world microservice systems
How lagom helps to build real world microservice systemsHow lagom helps to build real world microservice systems
How lagom helps to build real world microservice systemsMarkus Eisele
 
CQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersCQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersMarkus Eisele
 

More from Markus Eisele (20)

Sustainable Software Architecture - Open Tour DACH '22
Sustainable Software Architecture - Open Tour DACH '22Sustainable Software Architecture - Open Tour DACH '22
Sustainable Software Architecture - Open Tour DACH '22
 
Going from java message service (jms) to eda
Going from java message service (jms) to eda Going from java message service (jms) to eda
Going from java message service (jms) to eda
 
Let's be real. Quarkus in the wild.
Let's be real. Quarkus in the wild.Let's be real. Quarkus in the wild.
Let's be real. Quarkus in the wild.
 
What happens when unicorns drink coffee
What happens when unicorns drink coffeeWhat happens when unicorns drink coffee
What happens when unicorns drink coffee
 
Stateful on Stateless - The Future of Applications in the Cloud
Stateful on Stateless - The Future of Applications in the CloudStateful on Stateless - The Future of Applications in the Cloud
Stateful on Stateless - The Future of Applications in the Cloud
 
Java in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/MJava in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/M
 
Java in the Age of Containers and Serverless
Java in the Age of Containers and ServerlessJava in the Age of Containers and Serverless
Java in the Age of Containers and Serverless
 
Migrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systemsMigrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systems
 
Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19
 
Cloud wars - A LavaOne discussion in seven slides
Cloud wars - A LavaOne discussion in seven slidesCloud wars - A LavaOne discussion in seven slides
Cloud wars - A LavaOne discussion in seven slides
 
Streaming to a new Jakarta EE
Streaming to a new Jakarta EEStreaming to a new Jakarta EE
Streaming to a new Jakarta EE
 
Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained  Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolith
 
Architecting for failure - Why are distributed systems hard?
Architecting for failure - Why are distributed systems hard?Architecting for failure - Why are distributed systems hard?
Architecting for failure - Why are distributed systems hard?
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolith Stay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Nine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take youNine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take you
 
How lagom helps to build real world microservice systems
How lagom helps to build real world microservice systemsHow lagom helps to build real world microservice systems
How lagom helps to build real world microservice systems
 
CQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersCQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java Developers
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 

Recently uploaded (20)

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

Seven Deadly Sins

  • 1.
  • 6. Browser OS HW Network JVM OS HW DB OS HW
  • 7. ~ „I'm ready. I'm ready. I'm ready. I'm ready. ” LUST  a passionate desire for something  our absorbent yellow friend is an extremely lustful creature  will often stop at nothing to complete a task Spongebob 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. Golden-taps  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. LUST http://www.flickr.com/photos/sonictk/338406270/sizes/l/in/photostream/
  • 9. Over Engineering  (outdated) way of applying patterns  (too many) interfaces  Solving tomorrows problems  Premature optimization LUST http://www.flickr.com/photos/argonne/3366236801/sizes/l/in/photostream/
  • 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 LUST http://www.flickr.com/photos/jdsmith1021/4058827158/sizes/l/in/photostream/
  • 11. Not invented here  Might be a corporate culture  Dangerous if applied to security LUST http://www.flickr.com/photos/jed-sullivan/5081024719/sizes/o/in/photostream/
  • 12. ~ „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 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
  • 13. 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) Gluttony http://www.flickr.com/photos/ryanhayes/4340420545/sizes/z/in/photostream/
  • 14. 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 Gluttony  Profile your code http://www.flickr.com/photos/wuerzblog/4608933631/sizes/l/in/photostream/
  • 15. HttpSession Size  There to track state  Not your “in memory” cache  Control session lifetime  Be java.io.Serializable Gluttony http://www.flickr.com/photos/amanky/353356162/sizes/m/in/photostream/
  • 16. 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 Gluttony http://www.flickr.com/photos/ecstaticist/3751068291/sizes/l/in/photostream/
  • 17. ~ „Will you please stop leaving your WRATH 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 Squidward 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
  • 18. 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/
  • 19. 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/
  • 20. 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/
  • 21. ~ „Oh, yes you do, no world means no money, GREED 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 Mr.Krabs 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
  • 22. 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/
  • 23. ~ „Lady, someone should put you in a box to ENVY 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
  • 24. 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/
  • 25. ~ „ It's okay. Take your time. ” 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
  • 26. “Efficiency is intelligent laziness.”  No refactoring  No reuse  Copy and Paste  Too simple  No improvement  No peer reviews
  • 27. ~ „ 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 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
  • 28. "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
  • 29. 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
  • 30. Q&A