jazoon'13 - andres almiray - rocket propelled java

10
ROCKET PROPELLED JAVA ANDRES ALMIRAY CANOO ENGINEERING A.G. @AALMIRAY

Upload: jazoon13

Post on 17-Jan-2015

256 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: JAZOON'13 - Andres Almiray - Rocket Propelled Java

ROCKETPROPELLEDJAVAANDRES ALMIRAYCANOO ENGINEERING A.G.

@AALMIRAY

Page 2: JAZOON'13 - Andres Almiray - Rocket Propelled Java

ABOUT THE SPEAKER

Java developer since the beginning

True believer in open source

Groovy committer since 2007

Project lead of the Griffon framework

Currently working for

Page 3: JAZOON'13 - Andres Almiray - Rocket Propelled Java

PROJECT LOMBOK

Where, Who, How?

■ http://projectlombok.org/

■ Reinier Zwitserloot @surial

■ Roel Spilker @rspilker

■ Relies on JDK6’s Annotation Processor

■ Modifies Bytecode at compile time

3

Why?

■ Get rid of boiler plate code

■ Compiler does the heavy lifting

■ Developers just have to write the essentials

Page 4: JAZOON'13 - Andres Almiray - Rocket Propelled Java

4

HOW DOES IT LOOK?

Page 5: JAZOON'13 - Andres Almiray - Rocket Propelled Java

ANNOTATIONS

■ @Getter / @Setter

■ @ToString

■ @EqualsAndHashCode

■ @NoArgsConstructor

■ @AllArgsConstructor

■ @Data

■ @RequiredArgsConstructor

5

■ @Cleanup

■ @Synchronized

■ @SneakyThrows

■ @Log

■ @Delegate

Page 6: JAZOON'13 - Andres Almiray - Rocket Propelled Java

LOMBOK-PG

Where, Who, How

■ https://github.com/peichhorn/lombok-pg/

■ Philipp Eichhorn

■ peichhorn @ github

■ Delivers its own common AST API

■ Easier to write cross compiler AST

6

Why?

■ Extends Lombok with additional annotations such as:

■ @Singleton

■ @FluentSetter

■ @Builder

■ and more!

Page 7: JAZOON'13 - Andres Almiray - Rocket Propelled Java

GROOVY AST TRANSFORMATIONS

Where, Who, How

■ https://groovy.codehaus.org

■ The Groovy Team

■ Compile time metaprogramming

■ Changes registered in the bytecode

7

Why?

■ Groovy plays nicely with Java

■ Compile time metaprogramming executes faster than runtime

■ Changes visible to other JVM languages

Page 8: JAZOON'13 - Andres Almiray - Rocket Propelled Java

HOW DOES IT LOOK?

The @Immutable AST transformation makes writing immutable classes trivial

Page 9: JAZOON'13 - Andres Almiray - Rocket Propelled Java

SOME ANNOTATIONS

■ @Bindable / @Vetoable

■ @Grab

■ @Immutable

■ @Singleton

■ @ToString

■ @EqualsAndHashCode

■ @TupleConstructor

■ @Canonical

9

■ @Delegate

■ @Log

■ @Synchronized

■ @AutoClone

■ @AutoExternalize

■ @TypeChecked

■ @CompileStatic

■ Plus many more!

Page 10: JAZOON'13 - Andres Almiray - Rocket Propelled Java

THANK YOU!

@AALMIRAY

HTTP://PEOPLE.CANOO.COM/SHARE/