Architecture Hexagonale et TDD en TypeScript : bien débuter

La méthode concrète la plus puissante pour développer de meilleurs logiciels plus rapidement et sereinement.

Ratings 4.52 / 5.00
Architecture Hexagonale et TDD en TypeScript : bien débuter

What You Will Learn!

  • Comment passer deux fois plus de temps à développer de nouvelles fonctionnalités plutôt qu'à corriger des bugs
  • Comment définir des exemples servant de critères d'acceptation et permettant d'éviter les longues discussions autour de quiproquos grâce à l'Example Mapping
  • Comprendre ce qu'est une bonne architecture, et comment avoir une approche évolutive pour ne pas sombrer dans la complexité accidentelle
  • Comment être serein et beaucoup plus rapide grâce au Test-Driven Development (TDD)
  • Comment bien mettre en place une architecture hexagonale en partant de zéro
  • L'importance de l'inversion de dépendances, principe SOLID extrêmement important pour t'assurer un logiciel plus facilement maintenable et évolutif
  • Pourquoi et comment itérer de façon très rapide grâce au feedback régulier que permettent le TDD et l'architecture hexagonale
  • Comment se servir d'un framework (NestJS) pour gagner du temps, sans s'y coupler
  • Comment tester en isolation l'infrastructure grâce à TestContainers
  • Comment organiser ses fichiers et ses dossiers selon le principe de la Screaming Architecture
  • Comment bien séparer Data Model et Domain Model avec Prisma et PostgreSQL
  • Comment créer des fixtures et des builders pour nos tests unitaires et créer une DSL (Domain Specific Language) pour créer des tests unitaires plus rapidement
  • Comment utiliser un Presenter pour gérer le retour des use cases de façon découplée, évolutive, et maintenable
  • Pourquoi et comment implémenter des tests end-to-end

Description

Ce cours t'apprendra à développer de meilleurs logiciels plus rapidement grâce au TDD (Test-Driven Development) et à l'architecture hexagonale avec une application pratique en TypeScript / Node.JS


Tu y verras notamment :


  • Comment définir des exemples servant de critères d'acceptation et permettant d'éviter les longues discussions autour de quiproquos grâce à l'Example Mapping

  • Comment structurer un test unitaire dans le code pour éviter qu'il soit fragile et te permettre de refactorer ton code sereinement

  • L'importance de l'inversion de dépendances, principe SOLID extrêmement important pour t'assurer un logiciel plus facilement maintenable et évolutif

  • Comment créer des fixtures et des builders pour nos tests unitaires et créer une DSL (Domain Specific Language) pour créer des tests unitaires plus rapidement que tu ne l'as jamais vu !

  • Comment gérer le code lié à l'infrastructure (base de données, système de fichiers, etc,) sans polluer la logique métier

  • Comment tester l'infrastructure grâce à des tests d'intégration isolés avec TestContainer

  • Comment organiser ses fichiers et ses dossiers selon le principe de la Screaming Architecture

  • Comment bien séparer Data Model et Domain Model avec Prisma et PostgreSQL

  • Comment utiliser un Presenter pour gérer le retour des use cases de façon découplée, évolutive, et maintenable

  • Comment se servir d'un framework (NestJS) pour gagner du temps, sans s'y coupler
    Pourquoi et comment implémenter des tests end-to-end


J'y montre pas à pas comment je développe une application avec une architecture hexagonale, en me basant ici sur une version du kata Social Network, un Kata fait pour ressembler à un vrai projet, et pas juste un exercice rapide !


On simulera l'apparition de nouveaux besoins, comme dans la vraie vie d'un projet.


On verra donc comment ajouter la juste dose de complexité nécessaire dans l'architecture sans que ça devienne de la complexité accidentelle.


Je pars de simples fichiers non structurés, sans arborescences de dossiers, exécutable uniquement en ligne de commande, à une application réalisée avec le framework NestJS et exposant une API HTTP. Le tout en TDD, avec des tests d'intégration, et des tests end-to-end.

Who Should Attend!

  • Tous les développeurs souhaitant passer au niveau supérieur pour passer moins de temps à débugger et livrer plus de valeur, plus rapidement
  • Les Lead Devs qui souhaitent mettre en place le TDD et l'architecture hexagonale au sein de leur équipe
  • Les développeurs frontend qui souhaitent avoir une solide connaissance sur l'architecture hexagonale en général
  • Les freelances qui souhaitent se familiariser concrètement avec les principes du software craftsmanship pour augmenter leur TJM

TAKE THIS COURSE

Tags

  • Integration Testing
  • Software Architecture
  • Typescript
  • Unit Testing

Subscribers

520

Lectures

55

TAKE THIS COURSE



Related Courses