Formation Implémenter DDD avec CQRS / Event Sourcing

Paris - 13-14 février

1 400€ HT / personne (1 680€ TTC)

2 jours

En ligne - 17-18 avril

1 400€ HT / personne (1 680€ TTC)

2 jours

Lyon - 20-21 mai

1 400€ HT / personne (1 680€ TTC)

2 jours

Objectifs


Cette formation permet aux participants d’acquérir des bases pratiques pour implémenter un système avec CQRS (Command And Query Responsibility Segregation) et ES (Event Sourcing), en s’appuyant sur le DDD (Domain Driven Design) pour donner du sens à cette implémentation.
Depuis la conception en Event Storming jusqu’à l’implémentation, nous créerons ensemble un système évènementiel, dans votre langage de prédilection.
  • comprendre et implémenter CQRS
  • comprendre et implémenter ES
  • mettre en place une architecture DDD like
  • comprendre quand mettre en place ce type d'architecture

Acquis à l'issue de la formation

Le participant à cette formation aura acquis des bases solides pour l’implémentation d’un système évènementiel et réactif et en particulier:

  • Conception
    • Comprendre et effectuer un Event Storming
    • Analyser le métier avec une approche évènementielle
    • Organiser le code avec une architecture hexagonale
  • Notions de Domain Driven Design
    • Découvrir et appliquer Ubiquitous Language dans le code
    • Identifier et définir les Bounded Context
    • Désigner et implémenter les Agregates, Entities et Value Object
    • Comprendre les autres patterns stratégiques et tactiques
  • Implémentation
    • Créer et maintenir une classe Event Sourcing
    • Créer et maintenir un système CQRS
    • Mettre en place d'une base de données évènementielle NoSQL
    • Transmettre les évènements via un système Publisher/Subscriber basique
    • Comprendre les modes de communication intra et inter contextes

Public concerné et pré-requis

Cette formation vise les développeurs d’applications complexes ayant une bonne maîtrise d’au moins un langage de programmation (orienté objet ou fonctionnel), en terme de syntaxe, environnement de travail et accès aux bases de données (nous pouvons vous aider sur C#, Java, Scala, F#, JS/TS et PHP).

Il est également attendu une bonne maîtrise des tests unitaires dans ce langage.
Les participants devront être équipés d’un PC (non fourni) et avoir installé Git dans sa dernière version.
La formation contient une part importante de pratique. Les sessions sont réalisées avec un maximum de 12 personnes, pour nous permettre d’adapter le déroulement de la formation et de contextualiser les exercices, en fonction des participants et de leurs spécificités, tout en garantissant l'acquisition des compétences visées par la formation.

Evaluation

En début de formation, une autoévaluation est effectuée pour évaluer le niveau, ainsi que les attentes de chaque participant. Ainsi nous pouvons organiser au mieux les différents groupes de travail.
Par la suite, le formateur effectue une évaluation continue à l'aide des nombreux exercices pratiques.
En fin de formation, la progression et les acquis sont autoévalués par chacun des participants. Le formateur fournit à chacun des participants une évaluation, ainsi que les axes d'amélioration.
En option, un accompagnement postformation peut être effectué. Cela fera l'objet d'un devis complémentaire.

Programme

En partant de rien et sur un sujet commun, nous construisons petit à petit les bases d’un système CQRS/ES en utilisant des pratiques issues du DDD.

  • 1ère demi-journée
    • Event Storming, sujet site e-Commerce
    • Notion d’Aggregate/Command/Events et Bounded Contexts
  • 2ème demi-journée
    • Implémenter un Aggregate avec des Commands/Events avec l’état dans le constructeur
    • 3 possibilités d’implémentation des Events dans un Aggregate
    • EventBus
    • Persistence via les événements dans SQLite
  • 3ème demi-journée
    • Reprendre le concept d’EventBus
    • Query et Projection
  • 4ème demi-journée
    • Event Sourcing : stockage des événements avec implémentation d’un Store
    • Etat via les événements

Formateur / Formatrices

Florent Pellet
Florent Pellet

Florent est développeur depuis 2009, après une formation d'ingénieur à l'ENSISA. Il a co-créé la junior entreprise de son école. Il a commencé en société de services informatique, puis il a monté une startup. Il est passé indépendant en 2011.

Après de nombreux projets pour des clients, et avoir constaté que le manque de bonnes pratiques nuisait gravement au bon déroulement, il a orienté son expertise autour des thèmes formant le socle de formation de HackYourJob.

Il a donné des formations en entreprises au travers d'autres organismes de formation. Il anime régulièrement des BBLs.

Emilien Pecoul
Emilien Pecoul

Emilien est développeur depuis 2009, après une formation en Master professionnel génie Physiologique et Informatique. Il a travaillé dans des sociétés d'édition de logiciels, puis il est passé indépendant en 2013.

Ses expériences l'ont conduit à expérimenter la mise en oeuvre de bonnes pratiques permettant de réaliser des projets plus en adéquation avec les réels besoins des clients. Il porte désormais ces bonnes pratiques au travers des formations HackYourJob, en plus des missions chez ses clients.

Il a donné des formations en entreprises au travers d'autres organismes de formation. Il anime régulièrement des BBLs.

Clément Bouillier
Clément Bouillier

Clément a démarré son parcours professionnel en tant que développeur en 2004, après une formation d'ingénieur de Télécom Sud Paris (ex-Télécom INT). Il est développeur indépendant depuis 2013 en plus de son activité de formation HackYourJob.

Il a été également chef de projet, consultant qualité, architecte technique sur différents projets, tout en conservant un profil très technique proche du développement de logiciels. Toutes ces expériences l'ont amené à considérer la formation à de bonnes pratiques de développement au travers d'HackYourJob.

Il a donné des formations en entreprises par le biais d'autres organismes de formation et a été intervenant en Licence Pro à l'IUT Lyon 1 de 2015 à 2017.

Nicolas Fedou
Nicolas Fedou

Nicolas a toujours aimé les systèmes (engrenages, mécanique) et les casse-têtes. Il est tombé dans l'informatique depuis qu'il compose des commandes avec Linux. Assembler des commandes, des objets, des composants, des pipelines, c'est comme jouer aux Légo pour lui !

Aujourd'hui, il fait de ses activités de conseil et d'accompagnement en édition de logiciels son coeur de métier. Ses interventions en audits, conceptions de solution, et accompagnements, vont du code du logiciel lui-même à l'organisation des équipes qui produisent ce code, en passant par leurs outils de travail.

Il ne se limite pas au management ou au pilotage de la mise en oeuvre. Il contribue en montrant l'exemple comme un mentor ou un responsable technique.

Témoignages

Formation complète sur le sujet abordé, intense et enrichissante. Formateur compétent et challengeant.

Martial

Bonne formation avec des exercices pratique adaptés et des exemples explicites

Développeur HubOne

Une formation vraiment intéressante qui permet d'approfondir dans le développement dans n'importe quel niveau.

Développeur HubOne

Une formation dynamique et passionante, avec des formateurs volontaires et investis dans leur sujet.

Sylvain

Cette formation m'a permis de comprendre les subtilités du pattern CQRS/ES grâce à ses intervenants.

Jean

Enfin une formation qui permet de mettre en pratique le fameux trio DDD/CQRS/ES sur un cas concret. Les formateurs sont compétents et à l'écoute.

Lucas