Rocket Propelled Java - Devoxx12
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Rocket Propelled Java - Devoxx12

  • 1,137 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,137
On Slideshare
1,134
From Embeds
3
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 3

https://twitter.com 3

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Rocket Propelled Java Andres Almiray Canoo Fellow Canoo Engineering AG @aalmiray
  • 2. Andres Almiray Speaker Bio ■  Java developer since the beginning ■  True believer in open source ■  Groovy committer since 2007 ■  Project lead of the Griffon framework ■  Currently working for 3
  • 3. Project Lombok Where, Who, How? Why? ■  http://projectlombok.org/ ■  Get rid of boiler plate code index.html ■  Compiler does the heavy lifting ■  Reinier Zwitserloot @surial ■  Developers just have to write the ■  Roel Spilker @rspilker essentials ■  Relies on JDK6’s Annotation Processor ■  Modifies Bytecode at compile time 4
  • 4. How does it look? import lombok.Data; import lombok.ToString; @ToString(includeFieldNames=true) @Data public class DataExample { private final String name; private final String lastName; private int age; } 5
  • 5. Annotations ■  @Getter / @Setter ■  @Cleanup ■  @ToString ■  @Synchronized ■  @EqualsAndHashCode ■  @SneakyThrows ■  @NoArgsConstructor ■  @Log ■  @RequiredArgsConstructor ■  @Delegate ■  @AllArgsConstructor ■  @Data 6
  • 6. Lombok-pg Where, Who, How Why? ■  https://github.com/peichhorn/ ■  Extends Lombok with additional lombok-pg/ annotations such as: ■  Philipp Eichhorn ■  @Singleton ■  peichhorn @ github ■  @FluentSetter ■  @Builder ■  Delivers its own common AST ■  and more! API ■  Easier to write cross compiler AST 7
  • 7. Groovy AST Transformations Where, Who, How Why? ■  https://groovy.codehaus.org ■  Groovy plays nicely with Java ■  The Groovy Team ■  Compile time metaprogramming executes faster than runtime ■  Compile time metaprogramming ■  Changes visible to other JVM ■  Changes registered in the languages bytecode 8
  • 8. Some Annotations ■  @Bindable / @Vetoable ■  @Delegate ■  @Grab ■  @Log ■  @Immutable ■  @Synchronized ■  @Singleton ■  @AutoClone ■  @ToString ■  @AutoExternalize ■  @EqualsAndHashCode ■  @TupleConstructor ■  @TypeChecked ■  @Canonical ■  @CompileStatic 9
  • 9. Q&A Andres Almiray @aalmiray