SlideShare a Scribd company logo
2016Volodymyr Tsukur @ JEEConf
hot and spicy Java
with Lombok. live ▶︎
REST
Volodymyr Tsukur partner @
software
engineering
manager @
flushdia vtsukur
program
committee @
boilerplate -
code included in
many places with
little or no changes
whiskey
party!
SHOW TIME !
what is
Lombok?
it is an island
Lombok = chili
Red Hot Chilli JAVA!
.java .class
javac
.java .class
javac
magic?
.java
.class
javac
AST
.java
.class
javac
@
@
-cp
AST
@
@
@
.java
.class
javac
@
@
-cp
AST
@
@
@
.java
.class
javac
AST
build tool
does NOT matter,
compilation does!
LET’S DRINK
CODE IT !
@Cleanup
@Synchronized
@SneakyThrows
less boilerplate
easy to use
extensible
min debug impact
refactoring
WYSIWYG
extensions’ support
easy to misuse
use delombok
design goes first
too much magic is bad
Google Auto
https://github.com/google/auto
alternatives?
drinking time!
References
• https://github.com/rzwitserloot/lombok
• https://groups.google.com/forum/#!forum/project-lombok
• https://www.parleys.com/tutorial/project-lombok-boilerplate-busters
• http://www.ibm.com/developerworks/library/j-lombok/
• http://jnb.ociweb.com/jnb/jnbJan2010.html
• http://royvanrijn.com/blog/2016/03/adding-var-val-to-java/
• http://blog.dripstat.com/type-inference-in-java-jep-286-can-be-disastrous/
https://github.com/vtsukur/lombok-whiskey-demo
Images
1. Project Lombok logo: https://github.com/rzwitserloot/lombok/blob/master/src/installer/lombok/installer/lombok.png
2. Java logo: http://www.cloudkafka.com/images/java.svg
3. Twitter icon: https://g.twimg.com/dev/documentation/image/Twitter_logo_blue_48.png
4. GitHub icon: https://github.com/favicon.ico
5. GitHub icon: https://assets-cdn.github.com/images/modules/logos_page/GitHub-Mark.png
6. Ciklum logo: https://www.ciklum.com/wp-content/themes/theme/img/logo.png
7. Zoomdata logo: https://www.ciklum.com/wp-content/uploads/2015/07/zPVBqQWY8m0i2jXDCG0v7A-Logo_-_Zoomdata.png
8. Easyhunt logo: http://easyhunt.com/static/images/easyhunt_logo.png
9. Frost Digital logo: http://digitalagencynetwork.com/wp-content/uploads/2015/09/frost-digital-mobile-agency-stockholm-sweden.png
10. JEEConf logo: http://jeeconf.com/wp-content/themes/jeeconf/images/jee-logo.png
11. Code wallpaper: http://www.joshmatthews.net/cusec16/pictures/shutterstock_124758646-copy.jpg
12. Wikipedia logo: https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/Wikipedia-word.svg/174px-Wikipedia-word.svg.png
13. Whiskey party: http://sdcrawl.com/wp-content/uploads/2015/09/0Y2A9753_2-1024x512.jpg
14. College party: http://www.slate.com/content/dam/slate/articles/business/adreportcard/111007_brandbox_americanpie.jpg.CROP.rectangle3-large.jpg
15. Whiskey collection: http://blog.lesroches.edu/wp-content/uploads/Whiskey.jpg
16. Lombok Island wallpaper: https://baiqrosmala.files.wordpress.com/2015/05/lombok-beach-21-hd-images-wallpapers.jpg
17. Chili: https://sophieholic.files.wordpress.com/2011/08/img_7584.jpg
18. Binary tree icon: http://icons.iconarchive.com/icons/custom-icon-design/flatastic-5/512/Binary-tree-icon.png
19. Processor icon: http://www.free-icons-download.net/images/processor-icon-61552.png
20. Right arrow arc icon: http://www.iconarchive.com/download/i95473/iconsmind/outline/Arrow-To.ico
21. File icon: https://cdn2.iconfinder.com/data/icons/windows-8-metro-style/512/document.png
22. Binary file icon: http://icons.iconarchive.com/icons/mart/glaze/128/binary-icon.png
23. Ant logo: https://ant.apache.org/manual/images/ant_logo_large.gif
24. SBT logo: https://raw.githubusercontent.com/1science/docker-sbt/latest/logo.png
25. Ivy logo: http://ant.apache.org/ivy/images/ivy-lierre.png
26. Gradle logo: http://gradle.wpengine.netdna-cdn.com/wp-content/uploads/2015/10/gradle-logo-horizontal2.svg
27. Maven logo: https://maven.apache.org/images/maven-logo-black-on-white.png
28. Eclipse logo: https://eclipse.org/artwork/images/v2/logo-800x188.png
29. IntelliJ IDEA logo: based on the screenshot of IntelliJ IDEA 15 application icon in Finder
30. Netbeans logo: https://upload.wikimedia.org/wikipedia/en/thumb/0/01/NetBeans.svg/1280px-NetBeans.svg.png
31. Springbank wallpaper: http://www.whiskyintelligence.com/wp-content/uploads/2013/10/Royal_SpecialLabelWhisky_SpringbankCaskRoom_MR.jpg
32. Jack Daniel's: https://s-media-cache-ak0.pinimg.com/736x/ae/a5/c7/aea5c7a814222e11f383f8f44424b527.jpg

More Related Content

What's hot

Internal workshop react-js-mruiz
Internal workshop react-js-mruizInternal workshop react-js-mruiz
Internal workshop react-js-mruiz
Miguel Ruiz Rodriguez
 
Django On Jython (for Portland and Boulder Python user groups presentations)
Django On Jython (for Portland and Boulder Python user groups presentations)Django On Jython (for Portland and Boulder Python user groups presentations)
Django On Jython (for Portland and Boulder Python user groups presentations)
Leonardo Soto
 
Jsp
JspJsp
Why don't you Groovy?
Why don't you Groovy?Why don't you Groovy?
Why don't you Groovy?
Orest Ivasiv
 
Python for blackbox testers
Python for blackbox testersPython for blackbox testers
Python for blackbox testers
Sajnikanth Suriyanarayanan
 
Experiences building apps with React Native @DomCode 2016
Experiences building apps with React Native @DomCode 2016Experiences building apps with React Native @DomCode 2016
Experiences building apps with React Native @DomCode 2016
Adrian Philipp
 
Towards component based web UI with ReactJS
Towards component based web UI with ReactJSTowards component based web UI with ReactJS
Towards component based web UI with ReactJS
Oliver Häger
 
Use Ruby to Write (and Test) Your Next Android App
Use Ruby to Write (and Test) Your Next Android AppUse Ruby to Write (and Test) Your Next Android App
Use Ruby to Write (and Test) Your Next Android App
Joel Byler
 
Introduction to holmium
Introduction to holmiumIntroduction to holmium
Introduction to holmium
Sajnikanth Suriyanarayanan
 
Presentación rs232 java
Presentación rs232 javaPresentación rs232 java
Presentación rs232 java
John Rojas
 
Softshake 2013 - Let's take this offline
Softshake 2013 - Let's take this offlineSoftshake 2013 - Let's take this offline
Softshake 2013 - Let's take this offline
Claire Reynaud
 
Daniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého SchizmaDaniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého Schizma
Develcz
 
Using Ruby in Android Development
Using Ruby in Android DevelopmentUsing Ruby in Android Development
Using Ruby in Android Development
Adam Blum
 
Real World AngularJS recipes: beyond TodoMVC
Real World AngularJS recipes: beyond TodoMVCReal World AngularJS recipes: beyond TodoMVC
Real World AngularJS recipes: beyond TodoMVC
Carlo Bonamico
 
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
Develcz
 
Puppeteer: Getting Started
Puppeteer: Getting StartedPuppeteer: Getting Started
Puppeteer: Getting Started
HyunSeob Lee
 
Intro to React
Intro to ReactIntro to React
Intro to React
SheilaJimenezMorejon
 
Selenium & PHPUnit made easy with Steward (Berlin, April 2017)
Selenium & PHPUnit made easy with Steward (Berlin, April 2017)Selenium & PHPUnit made easy with Steward (Berlin, April 2017)
Selenium & PHPUnit made easy with Steward (Berlin, April 2017)
Ondřej Machulda
 
Presentation on java (8)
Presentation on java (8)Presentation on java (8)
Presentation on java (8)
Shwetakant1
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React Native
Waqqas Jabbar
 

What's hot (20)

Internal workshop react-js-mruiz
Internal workshop react-js-mruizInternal workshop react-js-mruiz
Internal workshop react-js-mruiz
 
Django On Jython (for Portland and Boulder Python user groups presentations)
Django On Jython (for Portland and Boulder Python user groups presentations)Django On Jython (for Portland and Boulder Python user groups presentations)
Django On Jython (for Portland and Boulder Python user groups presentations)
 
Jsp
JspJsp
Jsp
 
Why don't you Groovy?
Why don't you Groovy?Why don't you Groovy?
Why don't you Groovy?
 
Python for blackbox testers
Python for blackbox testersPython for blackbox testers
Python for blackbox testers
 
Experiences building apps with React Native @DomCode 2016
Experiences building apps with React Native @DomCode 2016Experiences building apps with React Native @DomCode 2016
Experiences building apps with React Native @DomCode 2016
 
Towards component based web UI with ReactJS
Towards component based web UI with ReactJSTowards component based web UI with ReactJS
Towards component based web UI with ReactJS
 
Use Ruby to Write (and Test) Your Next Android App
Use Ruby to Write (and Test) Your Next Android AppUse Ruby to Write (and Test) Your Next Android App
Use Ruby to Write (and Test) Your Next Android App
 
Introduction to holmium
Introduction to holmiumIntroduction to holmium
Introduction to holmium
 
Presentación rs232 java
Presentación rs232 javaPresentación rs232 java
Presentación rs232 java
 
Softshake 2013 - Let's take this offline
Softshake 2013 - Let's take this offlineSoftshake 2013 - Let's take this offline
Softshake 2013 - Let's take this offline
 
Daniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého SchizmaDaniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého Schizma
 
Using Ruby in Android Development
Using Ruby in Android DevelopmentUsing Ruby in Android Development
Using Ruby in Android Development
 
Real World AngularJS recipes: beyond TodoMVC
Real World AngularJS recipes: beyond TodoMVCReal World AngularJS recipes: beyond TodoMVC
Real World AngularJS recipes: beyond TodoMVC
 
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
 
Puppeteer: Getting Started
Puppeteer: Getting StartedPuppeteer: Getting Started
Puppeteer: Getting Started
 
Intro to React
Intro to ReactIntro to React
Intro to React
 
Selenium & PHPUnit made easy with Steward (Berlin, April 2017)
Selenium & PHPUnit made easy with Steward (Berlin, April 2017)Selenium & PHPUnit made easy with Steward (Berlin, April 2017)
Selenium & PHPUnit made easy with Steward (Berlin, April 2017)
 
Presentation on java (8)
Presentation on java (8)Presentation on java (8)
Presentation on java (8)
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React Native
 

Viewers also liked

Reactive Thinking in Java
Reactive Thinking in JavaReactive Thinking in Java
Reactive Thinking in Java
Yakov Fain
 
Code generation with javac plugin
Code generation with javac pluginCode generation with javac plugin
Code generation with javac plugin
Oleksandr Radchykov
 
Get along with JHipster
Get along with JHipsterGet along with JHipster
Get along with JHipster
Dmytro Panin
 
Implement your own profiler with blackjack and fun
Implement your own profiler with blackjack and funImplement your own profiler with blackjack and fun
Implement your own profiler with blackjack and fun
Vladimir Sitnikov
 
What Mr. Spock would possibly say about modern unit testing: pragmatic and em...
What Mr. Spock would possibly say about modern unit testing: pragmatic and em...What Mr. Spock would possibly say about modern unit testing: pragmatic and em...
What Mr. Spock would possibly say about modern unit testing: pragmatic and em...
Yaroslav Yermilov
 
CompletableFuture уже здесь
CompletableFuture уже здесьCompletableFuture уже здесь
CompletableFuture уже здесь
Dmitry Chuyko
 
мифы о спарке
мифы о спарке мифы о спарке
мифы о спарке
Evgeny Borisov
 
Hibernate, how the magic is really done
Hibernate, how the magic is really doneHibernate, how the magic is really done
Hibernate, how the magic is really done
Mikalai Alimenkou
 
Spring Boot. Boot up your development. JEEConf 2015
Spring Boot. Boot up your development. JEEConf 2015Spring Boot. Boot up your development. JEEConf 2015
Spring Boot. Boot up your development. JEEConf 2015
Strannik_2013
 
WILD microSERVICES v2 (JEEConf Edition)
WILD microSERVICES v2 (JEEConf Edition)WILD microSERVICES v2 (JEEConf Edition)
WILD microSERVICES v2 (JEEConf Edition)
Aleksandr Tarasov
 
Java EE 8: What Servlet 4.0 and HTTP/2 mean to you
Java EE 8: What Servlet 4.0 and HTTP/2 mean to youJava EE 8: What Servlet 4.0 and HTTP/2 mean to you
Java EE 8: What Servlet 4.0 and HTTP/2 mean to you
Alex Theedom
 
Do we need JMS in 21st century?
Do we need JMS in 21st century?Do we need JMS in 21st century?
Do we need JMS in 21st century?
Mikalai Alimenkou
 
Introduction to Akka-Streams
Introduction to Akka-StreamsIntroduction to Akka-Streams
Introduction to Akka-Streams
dmantula
 

Viewers also liked (13)

Reactive Thinking in Java
Reactive Thinking in JavaReactive Thinking in Java
Reactive Thinking in Java
 
Code generation with javac plugin
Code generation with javac pluginCode generation with javac plugin
Code generation with javac plugin
 
Get along with JHipster
Get along with JHipsterGet along with JHipster
Get along with JHipster
 
Implement your own profiler with blackjack and fun
Implement your own profiler with blackjack and funImplement your own profiler with blackjack and fun
Implement your own profiler with blackjack and fun
 
What Mr. Spock would possibly say about modern unit testing: pragmatic and em...
What Mr. Spock would possibly say about modern unit testing: pragmatic and em...What Mr. Spock would possibly say about modern unit testing: pragmatic and em...
What Mr. Spock would possibly say about modern unit testing: pragmatic and em...
 
CompletableFuture уже здесь
CompletableFuture уже здесьCompletableFuture уже здесь
CompletableFuture уже здесь
 
мифы о спарке
мифы о спарке мифы о спарке
мифы о спарке
 
Hibernate, how the magic is really done
Hibernate, how the magic is really doneHibernate, how the magic is really done
Hibernate, how the magic is really done
 
Spring Boot. Boot up your development. JEEConf 2015
Spring Boot. Boot up your development. JEEConf 2015Spring Boot. Boot up your development. JEEConf 2015
Spring Boot. Boot up your development. JEEConf 2015
 
WILD microSERVICES v2 (JEEConf Edition)
WILD microSERVICES v2 (JEEConf Edition)WILD microSERVICES v2 (JEEConf Edition)
WILD microSERVICES v2 (JEEConf Edition)
 
Java EE 8: What Servlet 4.0 and HTTP/2 mean to you
Java EE 8: What Servlet 4.0 and HTTP/2 mean to youJava EE 8: What Servlet 4.0 and HTTP/2 mean to you
Java EE 8: What Servlet 4.0 and HTTP/2 mean to you
 
Do we need JMS in 21st century?
Do we need JMS in 21st century?Do we need JMS in 21st century?
Do we need JMS in 21st century?
 
Introduction to Akka-Streams
Introduction to Akka-StreamsIntroduction to Akka-Streams
Introduction to Akka-Streams
 

Similar to Hot and spicy Java with Lombok. Live!

Let’s learn how to use JavaScript responsibly and stay up-to-date.
Let’s learn how to use JavaScript responsibly and stay up-to-date. Let’s learn how to use JavaScript responsibly and stay up-to-date.
Let’s learn how to use JavaScript responsibly and stay up-to-date.
Christian Heilmann
 
Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynote
Christian Heilmann
 
Innovation vs. Impatience - keynote at JSOpenDay London 2015
Innovation vs. Impatience - keynote at JSOpenDay London 2015Innovation vs. Impatience - keynote at JSOpenDay London 2015
Innovation vs. Impatience - keynote at JSOpenDay London 2015
Christian Heilmann
 
Flask
FlaskFlask
Let’s be productive with spring boot
Let’s be productive with spring bootLet’s be productive with spring boot
Let’s be productive with spring boot
JUGBD
 
Play Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level OverviewPlay Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level Overview
Josh Padnick
 
From React to React Native
From React to React NativeFrom React to React Native
From React to React Native
Axel Delafosse
 
Building a private CI/CD pipeline with Java and Docker in the cloud as presen...
Building a private CI/CD pipeline with Java and Docker in the cloud as presen...Building a private CI/CD pipeline with Java and Docker in the cloud as presen...
Building a private CI/CD pipeline with Java and Docker in the cloud as presen...
Baruch Sadogursky
 
Integrating react in django while staying sane and happy
Integrating react in django while staying sane and happyIntegrating react in django while staying sane and happy
Integrating react in django while staying sane and happy
Fröjd Interactive
 
JavaScript - The Universal Platform?
JavaScript - The Universal Platform?JavaScript - The Universal Platform?
JavaScript - The Universal Platform?
Jonas Bandi
 
Jquery react angular
Jquery react angularJquery react angular
Jquery react angular
Rafa D. Latorre López Villalta
 
Front-end for Java developers Devoxx France 2018
Front-end for Java developers Devoxx France 2018Front-end for Java developers Devoxx France 2018
Front-end for Java developers Devoxx France 2018
Deepu K Sasidharan
 
Startup and Rapid web development
Startup and Rapid web developmentStartup and Rapid web development
Startup and Rapid web development
Lalit Shandilya
 
Letter to a Junior Developer: The Engineering Side of Programming
Letter to a Junior Developer: The Engineering Side of ProgrammingLetter to a Junior Developer: The Engineering Side of Programming
Letter to a Junior Developer: The Engineering Side of Programming
Lazar Kovacevic
 
A Beginner's Guide to How to Code in Java
A Beginner's Guide to How to Code in JavaA Beginner's Guide to How to Code in Java
A Beginner's Guide to How to Code in Java
JAMESJOHN130
 
Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014
Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014
Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014
Pebble Technology
 
MCE^3 - Konstantin Raev - React Native: Open Source Continuous Build and Deli...
MCE^3 - Konstantin Raev - React Native: Open Source Continuous Build and Deli...MCE^3 - Konstantin Raev - React Native: Open Source Continuous Build and Deli...
MCE^3 - Konstantin Raev - React Native: Open Source Continuous Build and Deli...
PROIDEA
 
JavaScript Crash Course | Edureka
JavaScript Crash Course | EdurekaJavaScript Crash Course | Edureka
JavaScript Crash Course | Edureka
Edureka!
 
Ionic intro + tips
Ionic intro + tipsIonic intro + tips
Ionic intro + tips
Tony May
 
The Ideas of Clojure - Things I learn from Clojure
The Ideas of Clojure - Things I learn from ClojureThe Ideas of Clojure - Things I learn from Clojure
The Ideas of Clojure - Things I learn from Clojure
Hsuan Fu Lien
 

Similar to Hot and spicy Java with Lombok. Live! (20)

Let’s learn how to use JavaScript responsibly and stay up-to-date.
Let’s learn how to use JavaScript responsibly and stay up-to-date. Let’s learn how to use JavaScript responsibly and stay up-to-date.
Let’s learn how to use JavaScript responsibly and stay up-to-date.
 
Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynote
 
Innovation vs. Impatience - keynote at JSOpenDay London 2015
Innovation vs. Impatience - keynote at JSOpenDay London 2015Innovation vs. Impatience - keynote at JSOpenDay London 2015
Innovation vs. Impatience - keynote at JSOpenDay London 2015
 
Flask
FlaskFlask
Flask
 
Let’s be productive with spring boot
Let’s be productive with spring bootLet’s be productive with spring boot
Let’s be productive with spring boot
 
Play Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level OverviewPlay Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level Overview
 
From React to React Native
From React to React NativeFrom React to React Native
From React to React Native
 
Building a private CI/CD pipeline with Java and Docker in the cloud as presen...
Building a private CI/CD pipeline with Java and Docker in the cloud as presen...Building a private CI/CD pipeline with Java and Docker in the cloud as presen...
Building a private CI/CD pipeline with Java and Docker in the cloud as presen...
 
Integrating react in django while staying sane and happy
Integrating react in django while staying sane and happyIntegrating react in django while staying sane and happy
Integrating react in django while staying sane and happy
 
JavaScript - The Universal Platform?
JavaScript - The Universal Platform?JavaScript - The Universal Platform?
JavaScript - The Universal Platform?
 
Jquery react angular
Jquery react angularJquery react angular
Jquery react angular
 
Front-end for Java developers Devoxx France 2018
Front-end for Java developers Devoxx France 2018Front-end for Java developers Devoxx France 2018
Front-end for Java developers Devoxx France 2018
 
Startup and Rapid web development
Startup and Rapid web developmentStartup and Rapid web development
Startup and Rapid web development
 
Letter to a Junior Developer: The Engineering Side of Programming
Letter to a Junior Developer: The Engineering Side of ProgrammingLetter to a Junior Developer: The Engineering Side of Programming
Letter to a Junior Developer: The Engineering Side of Programming
 
A Beginner's Guide to How to Code in Java
A Beginner's Guide to How to Code in JavaA Beginner's Guide to How to Code in Java
A Beginner's Guide to How to Code in Java
 
Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014
Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014
Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014
 
MCE^3 - Konstantin Raev - React Native: Open Source Continuous Build and Deli...
MCE^3 - Konstantin Raev - React Native: Open Source Continuous Build and Deli...MCE^3 - Konstantin Raev - React Native: Open Source Continuous Build and Deli...
MCE^3 - Konstantin Raev - React Native: Open Source Continuous Build and Deli...
 
JavaScript Crash Course | Edureka
JavaScript Crash Course | EdurekaJavaScript Crash Course | Edureka
JavaScript Crash Course | Edureka
 
Ionic intro + tips
Ionic intro + tipsIonic intro + tips
Ionic intro + tips
 
The Ideas of Clojure - Things I learn from Clojure
The Ideas of Clojure - Things I learn from ClojureThe Ideas of Clojure - Things I learn from Clojure
The Ideas of Clojure - Things I learn from Clojure
 

More from Vladimir Tsukur

GraphQL APIs in Scala with Sangria
GraphQL APIs in Scala with SangriaGraphQL APIs in Scala with Sangria
GraphQL APIs in Scala with Sangria
Vladimir Tsukur
 
GraphQL - APIs The New Way
GraphQL - APIs The New WayGraphQL - APIs The New Way
GraphQL - APIs The New Way
Vladimir Tsukur
 
Hypermedia APIs and HATEOAS / Wix Engineering
Hypermedia APIs and HATEOAS / Wix EngineeringHypermedia APIs and HATEOAS / Wix Engineering
Hypermedia APIs and HATEOAS / Wix Engineering
Vladimir Tsukur
 
Hypermedia APIs and HATEOAS
Hypermedia APIs and HATEOASHypermedia APIs and HATEOAS
Hypermedia APIs and HATEOAS
Vladimir Tsukur
 
Building Awesome API with Spring
Building Awesome API with SpringBuilding Awesome API with Spring
Building Awesome API with Spring
Vladimir Tsukur
 
From CRUD to Hypermedia APIs with Spring
From CRUD to Hypermedia APIs with SpringFrom CRUD to Hypermedia APIs with Spring
From CRUD to Hypermedia APIs with Spring
Vladimir Tsukur
 
Together Cheerfully to Walk with Hypermedia
Together Cheerfully to Walk with HypermediaTogether Cheerfully to Walk with Hypermedia
Together Cheerfully to Walk with Hypermedia
Vladimir Tsukur
 
Take a REST!
Take a REST!Take a REST!
Take a REST!
Vladimir Tsukur
 
Law of Demeter & Objective Sense of Style
Law of Demeter & Objective Sense of StyleLaw of Demeter & Objective Sense of Style
Law of Demeter & Objective Sense of Style
Vladimir Tsukur
 
Abstraction Classes in Software Design
Abstraction Classes in Software DesignAbstraction Classes in Software Design
Abstraction Classes in Software Design
Vladimir Tsukur
 
Acceptance Testing of Web UI
Acceptance Testing of Web UIAcceptance Testing of Web UI
Acceptance Testing of Web UI
Vladimir Tsukur
 
REpresentational State Transfer
REpresentational State TransferREpresentational State Transfer
REpresentational State Transfer
Vladimir Tsukur
 

More from Vladimir Tsukur (12)

GraphQL APIs in Scala with Sangria
GraphQL APIs in Scala with SangriaGraphQL APIs in Scala with Sangria
GraphQL APIs in Scala with Sangria
 
GraphQL - APIs The New Way
GraphQL - APIs The New WayGraphQL - APIs The New Way
GraphQL - APIs The New Way
 
Hypermedia APIs and HATEOAS / Wix Engineering
Hypermedia APIs and HATEOAS / Wix EngineeringHypermedia APIs and HATEOAS / Wix Engineering
Hypermedia APIs and HATEOAS / Wix Engineering
 
Hypermedia APIs and HATEOAS
Hypermedia APIs and HATEOASHypermedia APIs and HATEOAS
Hypermedia APIs and HATEOAS
 
Building Awesome API with Spring
Building Awesome API with SpringBuilding Awesome API with Spring
Building Awesome API with Spring
 
From CRUD to Hypermedia APIs with Spring
From CRUD to Hypermedia APIs with SpringFrom CRUD to Hypermedia APIs with Spring
From CRUD to Hypermedia APIs with Spring
 
Together Cheerfully to Walk with Hypermedia
Together Cheerfully to Walk with HypermediaTogether Cheerfully to Walk with Hypermedia
Together Cheerfully to Walk with Hypermedia
 
Take a REST!
Take a REST!Take a REST!
Take a REST!
 
Law of Demeter & Objective Sense of Style
Law of Demeter & Objective Sense of StyleLaw of Demeter & Objective Sense of Style
Law of Demeter & Objective Sense of Style
 
Abstraction Classes in Software Design
Abstraction Classes in Software DesignAbstraction Classes in Software Design
Abstraction Classes in Software Design
 
Acceptance Testing of Web UI
Acceptance Testing of Web UIAcceptance Testing of Web UI
Acceptance Testing of Web UI
 
REpresentational State Transfer
REpresentational State TransferREpresentational State Transfer
REpresentational State Transfer
 

Recently uploaded

Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...
Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...
Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...
Transcat
 
An Introduction to the Compiler Designss
An Introduction to the Compiler DesignssAn Introduction to the Compiler Designss
An Introduction to the Compiler Designss
ElakkiaU
 
Beckhoff Programmable Logic Control Overview Presentation
Beckhoff Programmable Logic Control Overview PresentationBeckhoff Programmable Logic Control Overview Presentation
Beckhoff Programmable Logic Control Overview Presentation
VanTuDuong1
 
Assistant Engineer (Chemical) Interview Questions.pdf
Assistant Engineer (Chemical) Interview Questions.pdfAssistant Engineer (Chemical) Interview Questions.pdf
Assistant Engineer (Chemical) Interview Questions.pdf
Seetal Daas
 
openshift technical overview - Flow of openshift containerisatoin
openshift technical overview - Flow of openshift containerisatoinopenshift technical overview - Flow of openshift containerisatoin
openshift technical overview - Flow of openshift containerisatoin
snaprevwdev
 
Presentation on Food Delivery Systems
Presentation on Food Delivery SystemsPresentation on Food Delivery Systems
Presentation on Food Delivery Systems
Abdullah Al Noman
 
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
PriyankaKilaniya
 
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
upoux
 
Object Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOADObject Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOAD
PreethaV16
 
Call For Paper -3rd International Conference on Artificial Intelligence Advan...
Call For Paper -3rd International Conference on Artificial Intelligence Advan...Call For Paper -3rd International Conference on Artificial Intelligence Advan...
Call For Paper -3rd International Conference on Artificial Intelligence Advan...
ijseajournal
 
Introduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.pptIntroduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.ppt
Dwarkadas J Sanghvi College of Engineering
 
EV BMS WITH CHARGE MONITOR AND FIRE DETECTION.pptx
EV BMS WITH CHARGE MONITOR AND FIRE DETECTION.pptxEV BMS WITH CHARGE MONITOR AND FIRE DETECTION.pptx
EV BMS WITH CHARGE MONITOR AND FIRE DETECTION.pptx
nikshimanasa
 
OOPS_Lab_Manual - programs using C++ programming language
OOPS_Lab_Manual - programs using C++ programming languageOOPS_Lab_Manual - programs using C++ programming language
OOPS_Lab_Manual - programs using C++ programming language
PreethaV16
 
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
nedcocy
 
Transformers design and coooling methods
Transformers design and coooling methodsTransformers design and coooling methods
Transformers design and coooling methods
Roger Rozario
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
aryanpankaj78
 
Mechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdfMechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdf
21UME003TUSHARDEB
 
Levelised Cost of Hydrogen (LCOH) Calculator Manual
Levelised Cost of Hydrogen  (LCOH) Calculator ManualLevelised Cost of Hydrogen  (LCOH) Calculator Manual
Levelised Cost of Hydrogen (LCOH) Calculator Manual
Massimo Talia
 
Accident detection system project report.pdf
Accident detection system project report.pdfAccident detection system project report.pdf
Accident detection system project report.pdf
Kamal Acharya
 
SENTIMENT ANALYSIS ON PPT AND Project template_.pptx
SENTIMENT ANALYSIS ON PPT AND Project template_.pptxSENTIMENT ANALYSIS ON PPT AND Project template_.pptx
SENTIMENT ANALYSIS ON PPT AND Project template_.pptx
b0754201
 

Recently uploaded (20)

Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...
Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...
Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...
 
An Introduction to the Compiler Designss
An Introduction to the Compiler DesignssAn Introduction to the Compiler Designss
An Introduction to the Compiler Designss
 
Beckhoff Programmable Logic Control Overview Presentation
Beckhoff Programmable Logic Control Overview PresentationBeckhoff Programmable Logic Control Overview Presentation
Beckhoff Programmable Logic Control Overview Presentation
 
Assistant Engineer (Chemical) Interview Questions.pdf
Assistant Engineer (Chemical) Interview Questions.pdfAssistant Engineer (Chemical) Interview Questions.pdf
Assistant Engineer (Chemical) Interview Questions.pdf
 
openshift technical overview - Flow of openshift containerisatoin
openshift technical overview - Flow of openshift containerisatoinopenshift technical overview - Flow of openshift containerisatoin
openshift technical overview - Flow of openshift containerisatoin
 
Presentation on Food Delivery Systems
Presentation on Food Delivery SystemsPresentation on Food Delivery Systems
Presentation on Food Delivery Systems
 
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
 
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
 
Object Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOADObject Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOAD
 
Call For Paper -3rd International Conference on Artificial Intelligence Advan...
Call For Paper -3rd International Conference on Artificial Intelligence Advan...Call For Paper -3rd International Conference on Artificial Intelligence Advan...
Call For Paper -3rd International Conference on Artificial Intelligence Advan...
 
Introduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.pptIntroduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.ppt
 
EV BMS WITH CHARGE MONITOR AND FIRE DETECTION.pptx
EV BMS WITH CHARGE MONITOR AND FIRE DETECTION.pptxEV BMS WITH CHARGE MONITOR AND FIRE DETECTION.pptx
EV BMS WITH CHARGE MONITOR AND FIRE DETECTION.pptx
 
OOPS_Lab_Manual - programs using C++ programming language
OOPS_Lab_Manual - programs using C++ programming languageOOPS_Lab_Manual - programs using C++ programming language
OOPS_Lab_Manual - programs using C++ programming language
 
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
 
Transformers design and coooling methods
Transformers design and coooling methodsTransformers design and coooling methods
Transformers design and coooling methods
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
 
Mechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdfMechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdf
 
Levelised Cost of Hydrogen (LCOH) Calculator Manual
Levelised Cost of Hydrogen  (LCOH) Calculator ManualLevelised Cost of Hydrogen  (LCOH) Calculator Manual
Levelised Cost of Hydrogen (LCOH) Calculator Manual
 
Accident detection system project report.pdf
Accident detection system project report.pdfAccident detection system project report.pdf
Accident detection system project report.pdf
 
SENTIMENT ANALYSIS ON PPT AND Project template_.pptx
SENTIMENT ANALYSIS ON PPT AND Project template_.pptxSENTIMENT ANALYSIS ON PPT AND Project template_.pptx
SENTIMENT ANALYSIS ON PPT AND Project template_.pptx
 

Hot and spicy Java with Lombok. Live!

  • 1. 2016Volodymyr Tsukur @ JEEConf hot and spicy Java with Lombok. live ▶︎
  • 2. REST Volodymyr Tsukur partner @ software engineering manager @ flushdia vtsukur program committee @
  • 3. boilerplate - code included in many places with little or no changes
  • 5.
  • 8. it is an island
  • 10. Red Hot Chilli JAVA!
  • 17. build tool does NOT matter, compilation does!
  • 18.
  • 21. less boilerplate easy to use extensible min debug impact
  • 23. use delombok design goes first too much magic is bad
  • 26. References • https://github.com/rzwitserloot/lombok • https://groups.google.com/forum/#!forum/project-lombok • https://www.parleys.com/tutorial/project-lombok-boilerplate-busters • http://www.ibm.com/developerworks/library/j-lombok/ • http://jnb.ociweb.com/jnb/jnbJan2010.html • http://royvanrijn.com/blog/2016/03/adding-var-val-to-java/ • http://blog.dripstat.com/type-inference-in-java-jep-286-can-be-disastrous/ https://github.com/vtsukur/lombok-whiskey-demo
  • 27. Images 1. Project Lombok logo: https://github.com/rzwitserloot/lombok/blob/master/src/installer/lombok/installer/lombok.png 2. Java logo: http://www.cloudkafka.com/images/java.svg 3. Twitter icon: https://g.twimg.com/dev/documentation/image/Twitter_logo_blue_48.png 4. GitHub icon: https://github.com/favicon.ico 5. GitHub icon: https://assets-cdn.github.com/images/modules/logos_page/GitHub-Mark.png 6. Ciklum logo: https://www.ciklum.com/wp-content/themes/theme/img/logo.png 7. Zoomdata logo: https://www.ciklum.com/wp-content/uploads/2015/07/zPVBqQWY8m0i2jXDCG0v7A-Logo_-_Zoomdata.png 8. Easyhunt logo: http://easyhunt.com/static/images/easyhunt_logo.png 9. Frost Digital logo: http://digitalagencynetwork.com/wp-content/uploads/2015/09/frost-digital-mobile-agency-stockholm-sweden.png 10. JEEConf logo: http://jeeconf.com/wp-content/themes/jeeconf/images/jee-logo.png 11. Code wallpaper: http://www.joshmatthews.net/cusec16/pictures/shutterstock_124758646-copy.jpg 12. Wikipedia logo: https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/Wikipedia-word.svg/174px-Wikipedia-word.svg.png 13. Whiskey party: http://sdcrawl.com/wp-content/uploads/2015/09/0Y2A9753_2-1024x512.jpg 14. College party: http://www.slate.com/content/dam/slate/articles/business/adreportcard/111007_brandbox_americanpie.jpg.CROP.rectangle3-large.jpg 15. Whiskey collection: http://blog.lesroches.edu/wp-content/uploads/Whiskey.jpg 16. Lombok Island wallpaper: https://baiqrosmala.files.wordpress.com/2015/05/lombok-beach-21-hd-images-wallpapers.jpg 17. Chili: https://sophieholic.files.wordpress.com/2011/08/img_7584.jpg 18. Binary tree icon: http://icons.iconarchive.com/icons/custom-icon-design/flatastic-5/512/Binary-tree-icon.png 19. Processor icon: http://www.free-icons-download.net/images/processor-icon-61552.png 20. Right arrow arc icon: http://www.iconarchive.com/download/i95473/iconsmind/outline/Arrow-To.ico 21. File icon: https://cdn2.iconfinder.com/data/icons/windows-8-metro-style/512/document.png 22. Binary file icon: http://icons.iconarchive.com/icons/mart/glaze/128/binary-icon.png 23. Ant logo: https://ant.apache.org/manual/images/ant_logo_large.gif 24. SBT logo: https://raw.githubusercontent.com/1science/docker-sbt/latest/logo.png 25. Ivy logo: http://ant.apache.org/ivy/images/ivy-lierre.png 26. Gradle logo: http://gradle.wpengine.netdna-cdn.com/wp-content/uploads/2015/10/gradle-logo-horizontal2.svg 27. Maven logo: https://maven.apache.org/images/maven-logo-black-on-white.png 28. Eclipse logo: https://eclipse.org/artwork/images/v2/logo-800x188.png 29. IntelliJ IDEA logo: based on the screenshot of IntelliJ IDEA 15 application icon in Finder 30. Netbeans logo: https://upload.wikimedia.org/wikipedia/en/thumb/0/01/NetBeans.svg/1280px-NetBeans.svg.png 31. Springbank wallpaper: http://www.whiskyintelligence.com/wp-content/uploads/2013/10/Royal_SpecialLabelWhisky_SpringbankCaskRoom_MR.jpg 32. Jack Daniel's: https://s-media-cache-ak0.pinimg.com/736x/ae/a5/c7/aea5c7a814222e11f383f8f44424b527.jpg