93
L'ARCHITECTURE PROGRESSIVE @matthieunapoli

L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

L'ARCHITECTUREPROGRESSIVE

@matthieunapoli

Page 2: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

disclaimer

Page 3: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

LA COURSE3

Page 4: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

PHP

<?php$result = mysql_query('SELECT * FROM users WHERE Actif = 1');while ($rs = mysql_fetch_row($result)) { $userID = $rs[0]; $userName = $rs[1]; $userMail = $rs[2]; ?> <tr> <td style="text-align: center"> <?php echo '<a href="mailto:' . $userMail . '">Ecrire</a>'; ?> </td>

4

Page 5: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

CLASSES

class DatabaseConnector { protected static $objet;

/** * Retourne un objet PDO * @return objet PDO pour communiquer avec la BD */ public static function getHandle() { // Vérifie si l'objet est déjà chargé if (isset(self::$objet)) { return self::$objet; }

$host = DB_HOST; $database = DB_NAME; self::$objet = new PDO("mysql:host=$host;dbname=$database", DB_USER, DB_PASSWORD);

5

Page 6: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

MVC

class MVCParent extends MVCBase {

// Recherche parent function recherche_adresse() { // Retrouve les coordonées géographiques à partir de l'adresse $this->adresses = get_coordonees_from_adresse($_REQUEST['adresse']); if (count($this->adresses) == 0) { $this->RedirectControler('recherche_adresse_error'); return; }

// Recherche les parents $latitude = $this->adresses[0]['latitude']; $longitude = $this->adresses[0]['longitude']; $this->parents = UtilisateurParent::getParentsInSquare($latitude, $longitude);

6

Page 7: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

ORM

class Article{ /** @Id @Column(type="integer") @GeneratedValue */ private $id;

/** @Column(type="string") */ private $title;

/** @ManyToOne(targetEntity="User") */ private $author;

/** @OneToMany(targetEntity="Comment", mappedBy="article") */ private $comments;

7

Page 8: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

SOA

class OrderService{ public function createOrder(User $user, Cart $cart) { $items = $cart->getItems(); $order = new Order($user, $items);

$this->entityManager->persist($order); $this->entityManager->flush();

$this->catalogService->updateProductsStock($items);

$this->sendConfirmationMail($order); }

8

Page 9: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

DDD

Application/ Controller/Domain/ Entity/ ValueObject/ Service/ Repository/

9

Page 10: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

DDD

Application/ Controller/ Service/ DTO/Domain/ Entity/ ValueObject/ Service/ Repository/Infrastructure/ Service/ Repository/

10

Page 11: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

CQRS, EVENT SOURCING

Application/ Controller/ Service/ DTO/Domain/ Entity/ ValueObject/ Service/ Repository/ Command/ CommandHandler/ Event/Infrastructure/ Service/ Repository/

11

Page 12: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

HEXAGONAL ARCHITECTURE

12

Page 13: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents
Page 14: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

APPROCHE PLUTÔT QUE SOLUTION

Page 15: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

ÇA DÉPEND

Page 16: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

> -> -> -

16

Page 17: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

> métier> -> -

17

Page 18: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

> différents niveaux de complexité> différents niveaux de criticité

18

Page 19: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

DDD is an approach to software development for complex needs

19

Page 20: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

Ne sont pas des gros mots :

20

Page 21: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

Ne sont pas des gros mots :

> CRUD

20

Page 22: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

Ne sont pas des gros mots :

> CRUD> SQL

20

Page 23: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

Ne sont pas des gros mots :

> CRUD> SQL

> Hardcoder

20

Page 24: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

complexité technique ≤ complexité métier

21

Page 25: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

> métier> -> -

22

Page 26: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

> métier> business

> -

23

Page 27: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

3X

24

Page 28: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

EXPLORE

25

Page 29: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

26

Page 30: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

> Twitter

26

Page 31: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

> Twitter> Youtube

26

Page 32: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

> Twitter> Youtube> Slack

26

Page 33: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

> Twitter> Youtube> Slack

> Shopify

26

Page 34: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

EXPAND

27

Page 35: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

Du code legacy c'est un projet qui a réussi

28

Page 36: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

EXTRACT

29

Page 37: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

ET VOUS ?

> Explore> Expand

> Extract

30

Page 38: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

> métier> business

> -

31

Page 39: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

> métier> business> humain

32

Page 40: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

Les gens sont …

33

Page 41: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

HUMAIN

34

Page 42: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

HUMAIN

> compétences

34

Page 43: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

HUMAIN

> compétences> pérennité

34

Page 44: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

> métier> business> humain

35

Page 45: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

DDD

> Core domain> Supporting subdomain

> Generic subdomain

36

Page 46: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

3X

37

Page 47: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

HUMAIN

Diversité

38

Page 48: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

DÉCOUPER

39

Page 49: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

40

Page 50: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

41

Page 51: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents
Page 52: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

> métier> business> humain

43

Page 53: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

44

Page 54: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

45

Page 55: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

IDENTIFIER LES MODULES

46

Page 56: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

MÉTIERS DIFFÉRENTS

47

Page 57: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

MÉTIERS DIFFÉRENTS

> gestion des utilisateurs

47

Page 58: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

MÉTIERS DIFFÉRENTS

> gestion des utilisateurs> catalogue produit

47

Page 59: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

MÉTIERS DIFFÉRENTS

> gestion des utilisateurs> catalogue produit

> commandes

47

Page 60: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

MÉTIERS DIFFÉRENTS

> gestion des utilisateurs> catalogue produit

> commandes> CMS

47

Page 61: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

MÉTIERS DIFFÉRENTS

48

Page 62: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

MÉTIERS DIFFÉRENTS

> catalogue produit

48

Page 63: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

MÉTIERS DIFFÉRENTS

> catalogue produit> commandes

48

Page 64: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

MÉTIERS DIFFÉRENTS

> catalogue produit> commandes

> gestion des stocks

48

Page 65: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

ACTEURS ET USAGES DIFFÉRENTS

Catalogue produit :

49

Page 66: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

ACTEURS ET USAGES DIFFÉRENTS

Catalogue produit :

> Front : lecture seule, produits activés et en stock uniquement…

49

Page 67: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

ACTEURS ET USAGES DIFFÉRENTS

Catalogue produit :

> Front : lecture seule, produits activés et en stock uniquement…

> Back-office : modification de tous les produits, imports en masse…

49

Page 68: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

src/ Catalog/ Product.php CatalogService.php PIM/ Product.php PIMService.php

50

Page 69: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

DÉCOUPLER LES MODULES

51

Page 70: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

DÉCOUPLER LES MODULES

52

Page 71: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

DÉCOUPLER LES MODULES

> Évènements

52

Page 72: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

DÉCOUPLER LES MODULES

> Évènements> Abstractions

52

Page 73: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

DÉCOUPLER LES MODULES

> Évènements> Abstractions

> Dépendances unidirectionnelles

52

Page 74: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

53

Page 75: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

DUPLIQUER L'INFORMATION

54

Page 76: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

55

Page 77: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

56

Page 78: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

57

Page 79: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

DUPLIQUER LE MODÈLE SANS DUPLIQUER L'INFORMATION

58

Page 80: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

DTO

59

Page 81: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

SELECT * FROM categories;

Virtual Machine Debian WindowsNetwork Link Satellite (disabled) ADSL SDSL

SELECT * FROM v_front_categories;

Virtual Machine - DebianVirtual Machine - WindowsNetwork Link - ADSLNetwork Link - SDSL

60

Page 82: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

MULTIPLE ENTITY MANAGER

61

Page 83: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

PROGRESSIF

62

Page 84: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

> métier> business> humain

63

Page 85: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

ARCHITECTURE PROGRESSIVE

64

Page 86: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

65

Page 87: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

> Approche plutôt que solution

65

Page 88: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

> Approche plutôt que solution> Ça dépend (métier, business, humain)

65

Page 89: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

> Approche plutôt que solution> Ça dépend (métier, business, humain)

> Adapter les solutions à l'échelle du module

65

Page 90: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

> Approche plutôt que solution> Ça dépend (métier, business, humain)

> Adapter les solutions à l'échelle du module> La cohérence n'est pas une priorité

65

Page 91: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

> Approche plutôt que solution> Ça dépend (métier, business, humain)

> Adapter les solutions à l'échelle du module> La cohérence n'est pas une priorité

> Avancer progressivement

65

Page 92: L'ARCHITECTURE PROGRESSIVE - Matthieu Napoli · 2020-05-27 · HEXAGONAL ARCHITECTURE 12. APPROCHE PLUTÔT QUE SOLUTION. ÇA DÉPEND > - > - > - 16 > métier >->-17 > différents

C'est plus compliqué