[twitter] @binout
[github] https://github.com/binout
-
Développeur Java depuis plus de 10 ans
-
Commiteur Asciidoctor (project lead
asciidoctor-ant
) -
Technical Leader chez Lectra, numéro un mondial des solutions dédiées à l’industrie du textile (machines et logiciels)
1) Lire Domain-Driven Design Vite fait
2) Mettre le focus sur la modélisation du métier
-
Permet de définir un vocabulaire (
Ubiquitous Language
) -
Bien réfléchir aux propriétés des entités
-
Bien définir des agrégats
-
Rester indépendant de tous composants techniques (persistence, sérialisation)
5) La couche application doit définir des cas d’utilisation
-
un cas d’utilisation → une classe avec une seule méthode
-
pas d’appel entre deux services d’application
-
permet d’écrire des tests indépendamment du protocole de l’interface
6) Bien comprendre la notion de service
-
Service d’applications : cas d’utilisation
-
Service d’infrastructure : communication avec les systèmes externes
-
Service du domaine : règle métier partagée entre deux cas d’utilisation
8) Se débarrasser de ses à-priori de développeur !
-
Des habitudes de développement liées à notre apprentissage des frameworks…
-
Le plus important c’est le métier pas la technique !
public class Pokemon {
@Id
private final String id;
@Embedded
@AttributeOverrides({
@AttributeOverride(name="value", column=@Column(name="TYPE"))
})
private final PokemonType type;
@Column(name = "name", columnDefinition = "VARCHAR(255)")
private String name;
@Column(name = "pv",length=2, nullable = false)
private int pv;
....
}
-
Mapping JPA par annotations pollue le domaine
-
Utilisation de
META-INF/orm.xml
-
moyen de sortir le framework du domaine
-
tout aussi facile à écrire et à maintenir
-
support dans l’ide
-
9) Faire des tests d’intégration en utilisant le Behavior Driven Development
-
Permet de manipuler le domaine dans les tests (fichier feature)
10) Impliquer son Product Owner
-
Lui expliquer les concepts, la démarche
-
Lui montrer le modèle
-
Lui demander si le vocabulaire lui parle
-
Lui montrer les tests BDD
-
Lui demander de les écrire ;-)