Dans cette présentation, je vous propose de découvrir ensemble d’autre façon de développer en Java et Java 8 en particulier, mais que peu ont testé. Est-il possible de limiter le nombre de sous-classes pour une classe ? Si on peut désormais mettre un comportement dans une interface, peut-on y mettre un état ? Et peut-on sécuriser la grammaire de ses DSL internes ? Live coding à l’appui, voici certaines des questions auxquelles nous allons essayer de répondre ou qu’on ne devrait jamais aborder.
20. #DevoxxFR
Limiter le nombre sous-classes
abstract class Base {
private Base() {}
public static class Class1 extends Base { … }
public static class Class2 extends Base { … }
}
20
21. #DevoxxFR
Contraindre par le type
21
• Limitation des sous-classes => TDD
• Type = spécification
• ATTENTION !!! null interdit (checkstyle) T = Type
32. #DevoxxFR
Ce que nous avons vu
32
Montrer les mécanismes internes à Java 8
Pousser le compilateur à nous aider (contraintes de type)
Spécification analysée par le compilateur
33. #DevoxxFR
Ce qu’il faut faire
33
Voir d’autres langages (Python, OCaml, Scala)
Voir d’autres approches (FP, logical programming, prototype
based programming, acteurs)
Communiquer !