ALOM
UBER
Un micro-service c'est :
-
Un ensemble de fonctionnalités du même domaine métier
-
Un ou plusieurs canaux de communication
-
Une source de données dédiée
🔎 un micro-service Java
On s'appuie sur les technologies connues: les servlets !
🚗 un morceau d'UBER
🏗️ La vision architecture
🤔 Le code du NotificationService
❓ Quel est le problème de ce code?
👮 S.O.L.I.D principles
- S : Single Responsability
Une classe doit avoir une seule responsabilité
- O : Open/Closed
Ouvert à l'extension, mais fermé à la modification
- L : Liskov Substitution
Pouvoir utiliser un sous-type
- I : Interface Segregation
Présenter plusieurs interfaces spécifiques
- D : Dependency Inversion
Dépendre d'abstractions, et non d'implémentations
ℹ️
Rendre notre code S.O.L.I.D :
- Le rend testable
- Le rend compatible avec de l'injection de dépendances
Le secret ?
C'est les interfaces, observez le sens des flêches !
💉 Injection de dépendance
Laisser la plateforme fournir les dépendances:
- En fonction du contexte
- En fonction des composants disponibles
Nécessite des efforts de conception objet!
💉 Injection de dépendances avec
💉 Injection de dépendances
3 moyens :
- Par le construteur (recommandé)
- Par les setters (bof, non-immutable)
- Par les attributs de classe (déconseillé)
## Spring-Boot
"Extension" à Spring
Fournit la configuration automatique des frameworks les plus utilisés:
* spring-web
* spring-security
* jpa
* mongodb
* ...
## Spring-Boot
Les applications sont packagées dans des `jar` auto-portés.
Le `jar` contient le code de l'application, plus les librairies (spring-core, spring-web, etc...).
Les applications contiennent un `main` Java, qui démarre Spring-Boot.
Adapté à un écosystème 🐳 containers