live coding java 8 urs peter

Post on 10-May-2015

612 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Live  Coding:    

 By  Urs  Peter  

upeter@xebia.com  @urs_peter  

 

 

New  Features  of  Java  8  

•  JSR  335  Lambda  Expressions  and  Virtual  Extension  Methods  

•  JSR  308  AnnotaJons  on  Java  Types  Map<@NonNull String, @NonEmpty List<@Readonly Document>> files; !

•  JSR  310  Date  and  Time  API  OffsetDateTime now = OffsetDateTime.now(); System.out.println(now.format(DateTimeFormatter.ISO_DATE)); !

New  Features  of  Java  8  

•  JSR  335  Lambda  Expressions  and  Virtual  Extension  Methods  

•  JSR  308  AnnotaJons  on  Java  Types  Map<@NonNull String, @NonEmpty List<@Readonly Document>> files; !

•  JSR  310  Date  and  Time  API  OffsetDateTime now = OffsetDateTime.now(); System.out.println(now.format(DateTimeFormatter.ISO_DATE)); !

New  Features  of  Java  8  

•  JSR  335  Lambda  Expressions  and  Virtual  Extension  Methods  

•  JSR  308  AnnotaJons  on  Java  Types  Map<@NonNull String, @NonEmpty List<@Readonly Document>> files; !

•  JSR  310  Date  and  Time  API  OffsetDateTime now = OffsetDateTime.now(); System.out.println(now.format(DateTimeFormatter.ISO_DATE)); !

FuncAonal  Programming  

MulAple  Inheritance  of  Behaviour  

Let’s  Dive  into  Java  8!  

What  will  change  for  you?  

FuncJonal  programming    becomes  mainstream!  

How  to  get  funcJonal  

•  Change  the  way  you  look  at  programming  logic:  –  Think  in  terms  of  transforming  data  or  input/output    …instead  manipulaJng  state  

– Make  immutable  programming  the  default,  mutable  programming  the  excepJon  

–  FuncJonal  programming  implies  programming  on  a  higher  abstracAon  level  

 

How  to  get  funcJonal  

•  Start  using  higher  order  funcJons  (filter(), map() etc.)  in  CollecJons/Streams  – Whenever  you  use  a  for loop  try  to  come  up  with  a  funcJonal  alternaJve  

•  Use  Lambda’s  in  your  own  so]ware  structures  –  E.g.  Use  Lambda’s  instead  of  a  Template  or  Strategy  pa^ern  

•  Learn  to  read  Javadoc  for  Lambda’s  

When  to  apply    Virtual  Extension  Methods  

 •  Use  Virtual  Extension  Methods  to  make  new  addiJons  to  your  

API  backwards  compaJble    

•  Add  useful  default  implementaJons  to  your  interfaces  –  E.g.  Comparator:  boolean gt(T other), boolean lt(T other) !

•  Bundle  cross-­‐cuang  behaviour  in  interfaces  with  default  methods  –  E.g.  Logging  

Q  &  A  

 Urs  Peter  

upeter@xebia.com  @urs_peter  

 

 

top related