28
Twisted Java

Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

Embed Size (px)

Citation preview

Page 1: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

TwistedJava

Page 2: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

[email protected]

TheCodersBreakfast.net

github.com/OlivierCroisier

@OlivierCroisier

Olivier Croisier

Freelance

Moka Technologieshttp://mokatech.net

Expert Java certifié & FormateurSpeaker, Blogger

SPEAKER

Page 3: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

long foo = 32l;long bar = 123;

long foobar = foo + bar;System.out.println(foobar);

HUH ?

// 155

Page 4: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

● Valeurs littérales entières → int flottantes → double

● Suffixe L → typage en long D → typage en double

● Toujours utiliser un suffixe en majuscules

HUH ?

Page 5: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface
Page 6: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

HUH ?

public void businessMethod() {

See : http://jira.company.com/bug-1234 fixForBug1234();

}

Page 7: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

HUH ?

● 2 labels + 1 commentaire

● Label = nom + ":"Permet de sortir des boucles

See: http: //jira.company.com/bug-1234

outerLoop: for (…) { for (…) { if (…) break outerLoop; }}

Page 8: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface
Page 9: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

HUH ?

public final static Singleton ĽINSTANCE = new Singleton();

Page 10: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

HUH ?

● Caractère Unicode : Ľ● U+013D : "LATIN CAPITAL LETTER L WITH CARON"

public final static Singleton ĽINSTANCE = new Singleton();

Page 11: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface
Page 12: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

WAT ?!

<X> X X(X X) {return X;}

Page 13: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

● Namespaces– Variable de type– Utilisation des types– Nom de méthode

<X> X X (X X) {return X(X);}

WAT ?!

Page 14: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface
Page 15: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

(o) -> o <- (o)

WAT ?!

Page 16: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

● Predicate<Integer> foo = o → o < -o;

(o) -> o <- (o)

WAT ?!

Page 17: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface
Page 18: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

WAT ?!

int foo = $(this::foo);

Page 19: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

WAT ?!

int foo = $(this::foo); // foo = 42

private int foo() { return 42;}

private int $(Supplier<Integer> s) { return s.get();}

Page 20: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface
Page 21: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

public class Pojo {

void foo(Pojo this, String that) { }

void bar(String that) { foo(that); }

}

FUUU !!!

Page 22: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

● "Receiver type"– Premier paramètre– Type de la classe– Nommé this

● Support d'annotations● Analyse statique

FUUU !!!

Page 23: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface
Page 24: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

FUUU !!!

/**/@/** * IMPORTANT ! * Computes the Answer * Warning : might be long. * * @param args Important data * @returns The Answer */parallel int compute(int... args) { return 42;}

Page 25: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

● Annotation● @ séparable de son nom

private static @interface parallel {}

FUUU !!!

Page 26: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface
Page 27: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

CONCLUSION

Page 28: Twisted Java - thecodersbreakfast.netthecodersbreakfast.net/public/2017-04-14_Twisted_Java/Twisted_Java.pdfExpert Java certifié & Formateur Speaker, ... ... private static @interface

[email protected]

TheCodersBreakfast.net

github.com/OlivierCroisier

@OlivierCroisier

Olivier Croisier

Freelance

Moka Technologieshttp://mokatech.net

Expert Java certifié & FormateurSpeaker, Blogger

CONCLUSION