25h+ de vidéo + tous les nouveaux modules frontend à venir

Ce cursus contient toutes les vidéos théoriques de Craft Academy et les plus de 25h de mise en pratique sur un projet d'application type twitter. Le projet est réalisé avec React, mais comme nous utiliserons Redux Toolkit pour découpler totalement notre logique du framework utilisé, tu es libre d'utiliser Angular, Vue, ou Svelte, du moment que tu peut les brancher à redux :)

Garantie 1 - Essaye sans risque !

Il n'est parfois pas évident de savoir si une formation est vraiment faite pour toi ou pas. Grâce à cette garantie, je te laisse la possibilité de regarder jusqu'à 3 vidéos de ton choix par module. Si après visionnage de ces vidéos, tu penses que la formation n'est pas faite pour toi, préviens-moi dans les 30 jours suivant ton achat et je te rembourse immédiatement !

Garantie 2 - Satisfait ou remboursé 2 fois !

Je suis tellement convaincu que cette formation va t'aider dans ton travail, que je te rembourse 2 fois le montant que tu as payé si à la fin de la formation tu trouves que tu n'as pas progressé, et que ça ne t'aide pas dans ta carrière. Si tu me démontres que tu as en effet tout essayé et appliqué mais que malgré cela tu n'as pas réussi à atteindre tes objectifs, je te rembourse 2 fois le montant que tu as payé !

Cursus Frontend

Apprends à développer de meilleurs logiciels plus rapidement dans le frontend grâce à l'architecture hexagonale et au TDD.
€ 600,00 EUR
€ 600,00 EUR
Payable en 1, 3 ou 3 fois sans frais
FONCTIONNALITÉS
Green Check Icon
Accès à tous les modules théoriques + pratiques liés au frontend (existants et à venir)
Green Check Icon
Comment rédiger une DSL (Domain-Specific Language) pour nos tests afin de les écrire plus rapidement
Green Check Icon
Comprendre ce qu'est une bonne architecture frontend, et comment avoir une approche évolutive pour ne pas sombrer dans la complexité accidentelle
Green Check Icon
Comment écrire des tests end-to-end avec testing-library
Green Check Icon
Comment faire des démonstrations sans aucun backend grâce à l'architecture hexagonale
Green Check Icon
Comment tester une API HTTP externe, ou un SDK externe
Green Check Icon
Comment être serein et beaucoup plus rapide grâce au Test-Driven Development (TDD)
Green Check Icon
Comment extraire un maximum de logique des composants grâce au View Model
Green Check Icon
Comment utiliser la puissance de redux pour découpler efficacement et facilement notre application de react/angular/vue/svelte...
Green Check Icon
Comment gérer l'authentification et l'upload d'image

Contenu du Cursus Frontend

Le Software Craftsmanship et l'Ingénierie Logicielle Au Service De l'Épanouissement

Introduction

3:27

Qu'est-ce que le Software Craftsmanship ?

3:51

L'ingénierie logicielle

5:09

Qu'est-ce qu'un logiciel de qualité ?

3:28

L'importance de travailler de façon itérative

3:28

L'importance de travailler de façon incrémentale

4:18

L'importance du feedback

3:59

La pipeline de déploiement

4:45

Architecture logicielle testable

Le problème avec les tests manuels

5:05

Les différents types de use case au sein d'une application

8:27

Anatomie d'une architecture testable

6:28

Structure d'un test unitaire

7:11

Qu'est-ce qu'un bon test unitaire ?

7:05

L'importance de l'inversion de dépendances

6:35

Les test doubles

4:28

Tester un vrai use case

7:00

L'importance d'écrire des tests concis et lisibles

4:25

Écrire des tests maintenables : Le pattern Object Mother

3:17

Écrire des tests maintenables : La pattern builder

2:56

Écrire des tests concis et lisibles : Test fixture et principe DAMP

3:52

Sociable unit test, Solitary unit test, et autres quiproquos sur les tests unitaires

12:38

Les différents types de test

7:54

L'architecture hexagonale

5:00

Mise en pratique : TDD et architecture hexagonale dans le frontend

Installation de Vite et déploiement sur Vercel

9:34

Chakra UI, react-router, et home page statique

6:37

Installation de vitest pour les tests

9:51

Structure d'un test unitaire

13:16

Mise en place du store redux et de l'injection de dépendances

54:15

Normalisation par entités du store

25:32

TDD du view model de la Home

31:38

Gérer le temps en TDD

12:41

Branchement de redux avec react

19:38

Gestion de l'état de loading de la timeline

17:30

Utilisation du builder pattern pour les tests

31:50

Refactoring pour gérer l'authenticated user dans le state

15:52

Premier test e2e avec testing-library

16:02

Feature login with Google : Github full in memory

53:10

Tester la navigation

18:17

Petit réglage du router

5:41

Création d'une fake auth gateway plus réaliste

35:08

Empêcher un use case de s'exécuter plusieurs fois en parallèle

3:57

Mise en place du layout de la page Profile

18:42

Création du use case getUserTimeline et refactoring des reducers

14:27

Création des fixtures de tests

18:57

Profile timeline view model et refacto

21:53

Génération de fausses données

20:27

PostMessage use case, cas trivial

46:46

Gestion de l'ajout d'un message si la timeline n'est pas vide

11:22

Branchement du formulaire AddPostForm

23:10

Humble Object et view model, tester la logique locale sans testing-library

59:37

Gestion de l'échec d'envoi d'un message et retry

69:16

Récupération des followers et following

53:11

Création des view model des pages followers et following

37:48

Gestion propre de l'entity User

69:16

Refactoring des tests avec un builder de User

17:42

Récupération d'un utilisateur quand on arrive directement sur la page

19:58

Follow & Unfollow use cases

88:03

Refactoring de l'AuthUser

13:21

Préparation de l'UI pour les notifications

17:05

Récupération des notifications

39:38

Récupérer les notifications lorsque l'utilisateur est authentifié grâce au listener middleware

9:18

Souscrire aux nouvelles notifications uniquement lorsque l'utilisateur est authentifié

53:33

Création d'une FakeStorageNotificationGateway pour simuler la souscription aux nouvelles notifs

12:04

La puissance des view models en action

72:05

Marquer les notifications comme lues

28:39

Préparation de l'implémentation des use case like message et unlike message

22:06

Like message use case et gestion de l'optimistic update en cas d'erreur

50:03

Unlike message et gestion de l'optimistic update au fail

23:21

Branchement des use case like et unlike à l'UI avec le like-button view model

52:06

Use case d'upload de profile picture

79:51

Branchement de l'upload de la picture dans le view model du profile layout

18:03

Implémentation de vraies gateway Http et test d'intégration avec nock

33:56

Ajout d'une auth gateway avec Firebase

12:58

Test d'intégration d'un SDK externe

27:29

Contenu du Cursus Backend

Le Software Craftsmanship et l'Ingénierie Logicielle Au Service De l'Épanouissement

Introduction

3:27

Qu'est-ce que le Software Craftsmanship ?

3:51

L'ingénierie logicielle

5:09

Qu'est-ce qu'un logiciel de qualité ?

3:28

L'importance de travailler de façon itérative

3:28

L'importance de travailler de façon incrémentale

4:18

L'importance du feedback

3:59

La pipeline de déploiement

4:45

Architecture logicielle testable

Le problème avec les tests manuels

5:05

Les différents types de use case au sein d'une application

8:27

Anatomie d'une architecture testable

6:28

Structure d'un test unitaire

7:11

Qu'est-ce qu'un bon test unitaire ?

7:05

L'importance de l'inversion de dépendances

6:35

Les test doubles

4:28

Tester un vrai use case

7:00

L'importance d'écrire des tests concis et lisibles

4:25

Écrire des tests maintenables : Le pattern Object Mother

3:17

Écrire des tests maintenables : La pattern builder

2:56

Écrire des tests concis et lisibles : Test fixture et principe DAMP

3:52

Sociable unit test, Solitary unit test, et autres quiproquos sur les tests unitaires

12:38

Les différents types de test

7:54

L'architecture hexagonale

5:00

Mise en pratique : TDD et architecture hexagonale dans le backend

Introduction

8:55

Example Mapping

13:32

Initialisation du projet

4:36

Structure d'un test unitaire : raconter l'histoire dans le code

10:16

Structure d'un test unitaire : connecter les étapes

7:07

Création d'un use case simple et inversion de dépendances

13:53

Implémentation de la première règle métier : le message trop long

8:09

Création d'une test fixture et implémentation des messages avec que des espaces

7:06

Création de la commande post avec commander

10:32

Création d'un adapter FileSystemMessageRepository

5:14

Implémentation du use case ViewTimelineUseCase

32:00

Shift Gear Down - S'aider de tests unitaires plus fins

22:31

Implémentation de la commande console "view"

13:28

Factorisation de fixture et builders

23:01

Création d'un use case EditMessage

25:24

Création d'un value object MessageText

8:35

Test d'intégration du FileSystemMessageRepository

23:03

Création d'une classe Message avec encapsulation de la serialization et deserialization

12:55

Screaming Architecture

11:06

Exercice : implémente le use case FollowUser

6:15

Première implémentation du FollowUserUseCase

13:36

Implémentation du ViewWallUseCase

31:34

TDD sur un test d'intégration !

23:32

Base de données - Des repositories avec Prisma

21:50

Test d'intégration avec TestContainers

31:16

Implémentation d'une API fastify simple

14:11

Dissocier outpout de CLI et d'API grâce à un Presenter

19:37

Gérer les erreurs différemment avec un objet Result

10:06

Passage sous NestJS

54:08

Implémenter les tests end-to-end

26:49

Contenu du Cursus Fullstack

Le Software Craftsmanship et l'Ingénierie Logicielle Au Service De l'Épanouissement

Introduction

3:27

Qu'est-ce que le Software Craftsmanship ?

3:51

L'ingénierie logicielle

5:09

Qu'est-ce qu'un logiciel de qualité ?

3:28

L'importance de travailler de façon itérative

3:28

L'importance de travailler de façon incrémentale

4:18

L'importance du feedback

3:59

La pipeline de déploiement

4:45

Architecture logicielle testable

Le problème avec les tests manuels

5:05

Les différents types de use case au sein d'une application

8:27

Anatomie d'une architecture testable

6:28

Structure d'un test unitaire

7:11

Qu'est-ce qu'un bon test unitaire ?

7:05

L'importance de l'inversion de dépendances

6:35

Les test doubles

4:28

Tester un vrai use case

7:00

L'importance d'écrire des tests concis et lisibles

4:25

Écrire des tests maintenables : Le pattern Object Mother

3:17

Écrire des tests maintenables : La pattern builder

2:56

Écrire des tests concis et lisibles : Test fixture et principe DAMP

3:52

Sociable unit test, Solitary unit test, et autres quiproquos sur les tests unitaires

12:38

Les différents types de test

7:54

L'architecture hexagonale

5:00

Mise en pratique : TDD et architecture hexagonale dans le backend

Introduction

8:55

Example Mapping

13:32

Initialisation du projet

4:36

Structure d'un test unitaire : raconter l'histoire dans le code

10:16

Structure d'un test unitaire : connecter les étapes

7:07

Création d'un use case simple et inversion de dépendances

13:53

Implémentation de la première règle métier : le message trop long

8:09

Création d'une test fixture et implémentation des messages avec que des espaces

7:06

Création de la commande post avec commander

10:32

Création d'un adapter FileSystemMessageRepository

5:14

Implémentation du use case ViewTimelineUseCase

32:00

Shift Gear Down - S'aider de tests unitaires plus fins

22:31

Implémentation de la commande console "view"

13:28

Factorisation de fixture et builders

23:01

Création d'un use case EditMessage

25:24

Création d'un value object MessageText

8:35

Test d'intégration du FileSystemMessageRepository

23:03

Création d'une classe Message avec encapsulation de la serialization et deserialization

12:55

Screaming Architecture

11:06

Exercice : implémente le use case FollowUser

6:15

Première implémentation du FollowUserUseCase

13:36

Implémentation du ViewWallUseCase

31:34

TDD sur un test d'intégration !

23:32

Base de données - Des repositories avec Prisma

21:50

Test d'intégration avec TestContainers

31:16

Implémentation d'une API fastify simple

14:11

Dissocier outpout de CLI et d'API grâce à un Presenter

19:37

Gérer les erreurs différemment avec un objet Result

10:06

Passage sous NestJS

54:08

Implémenter les tests end-to-end

26:49

Mise en pratique : TDD et architecture hexagonale dans le frontend

Installation de Vite et déploiement sur Vercel

9:34

Chakra UI, react-router, et home page statique

6:37

Installation de vitest pour les tests

9:51

Structure d'un test unitaire

13:16

Mise en place du store redux et de l'injection de dépendances

54:15

Normalisation par entités du store

25:32

TDD du view model de la Home

31:38

Gérer le temps en TDD

12:41

Branchement de redux avec react

19:38

Gestion de l'état de loading de la timeline

17:30

Utilisation du builder pattern pour les tests

31:50

Refactoring pour gérer l'authenticated user dans le state

15:52

Premier test e2e avec testing-library

16:02

Feature login with Google : Github full in memory

53:10

Tester la navigation

18:17

Petit réglage du router

5:41

Création d'une fake auth gateway plus réaliste

35:08

Empêcher un use case de s'exécuter plusieurs fois en parallèle

3:57

Mise en place du layout de la page Profile

18:42

Création du use case getUserTimeline et refactoring des reducers

14:27

Création des fixtures de tests

18:57

Profile timeline view model et refacto

21:53

Génération de fausses données

20:27

PostMessage use case, cas trivial

46:46

Gestion de l'ajout d'un message si la timeline n'est pas vide

11:22

Branchement du formulaire AddPostForm

23:10

Humble Object et view model, tester la logique locale sans testing-library

59:37

Gestion de l'échec d'envoi d'un message et retry

69:16

Récupération des followers et following

53:11

Création des view model des pages followers et following

37:48

Gestion propre de l'entity User

69:16

Refactoring des tests avec un builder de User

17:42

Récupération d'un utilisateur quand on arrive directement sur la page

19:58

Follow & Unfollow use cases

88:03

Refactoring de l'AuthUser

13:21

Préparation de l'UI pour les notifications

17:05

Récupération des notifications

39:38

Récupérer les notifications lorsque l'utilisateur est authentifié grâce au listener middleware

9:18

Souscrire aux nouvelles notifications uniquement lorsque l'utilisateur est authentifié

53:33

Création d'une FakeStorageNotificationGateway pour simuler la souscription aux nouvelles notifs

12:04

La puissance des view models en action

72:05

Marquer les notifications comme lues

28:39

Préparation de l'implémentation des use case like message et unlike message

22:06

Like message use case et gestion de l'optimistic update en cas d'erreur

50:03

Unlike message et gestion de l'optimistic update au fail

23:21

Branchement des use case like et unlike à l'UI avec le like-button view model

52:06

Use case d'upload de profile picture

79:51

Branchement de l'upload de la picture dans le view model du profile layout

18:03

Implémentation de vraies gateway Http et test d'intégration avec nock

33:56

Ajout d'une auth gateway avec Firebase

12:58

Test d'intégration d'un SDK externe

27:29