• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 02/03/2022

Initiez-vous aux design patterns

Identifiez dans quels cas utiliser un design pattern

Quand une application évolue et intègre de nouvelles fonctionnalités, elle gagne souvent en complexité. Elle peut alors devenir difficile à maintenir et à contrôler.

Peut-être avez-vous déjà connu cette situation ?

  • Que faire quand vous devez changer d’API, et comment gérer un site utilisant deux versions différentes d’une même API ?

  • Comment gérer le formatage des données ? Quand ces dernières évoluent, ou quand on vous demande de rajouter de nouvelles informations ?

Plus simplement, comment faire pour permettre au code de rester maintenable et lisible quelles que soient ses futures évolutions ? Vous allez devoir refactoriser votre code et potentiellement implémenter des designs patterns.

Refactoriser ?

Le refactoring est une étape essentielle lors du développement, et c’est une compétence à avoir et à entretenir pour devenir un excellent développeur. Seulement, voilà, on ne sait jamais trop comment faire ça proprement. Ce cours va vous y aider !

Découvrez les différents design patterns

Du coup, c’est quoi un design pattern ?

Bonne question !

Un design pattern, ou patron de conception, en français, est une solution type à un problème spécifique en programmation. Il représente un modèle de solution à implémenter.

C’est un peu comme un patron de couture : vous avez une série d'étapes à suivre pour créer votre pantalon ou votre robe. Si vous suivez mal les étapes, c’est la catastrophe et votre pantalon est raté. Si vous les suivez bien, votre pantalon est réussi.

Dans le cas de la programmation :

  • Le système de gestion de bases de données, le formatage des données ou la gestion de la mémoire (on dit aussi du cache) est ce qui se rapproche du vêtement.

  • Le design pattern est la suite d’étapes à réaliser pour implémenter ce dernier. C’est ce qui se rapproche de votre patron de couture

Pour résumer, les design patterns fournissent une proposition de solution face à un problème donné.

L’un de leurs nombreux avantages est qu’ils permettent de conventionner le code. Autrement dit, plutôt que de dire “J’ai géré la connexion avec la base de données avec un objet”, vous pourrez dire “J’ai utilisé un Singleton pour gérer la base de données”. Pas mal, non ?

D’ailleurs, savez-vous que vous utilisez déjà des design patterns sans le savoir ? :)

Par exemple, vous utilisez au quotidien la méthode JavaScript addEventListener. Eh bien, c’est un Observable Pattern qui est de la famille des Behavioral Design Patterns (ou design patterns de comportement).

Euhhhh, mais ça veut dire qu’il existe plusieurs types de design patterns ?

Tout à fait !

Il existe trois grands types de design patterns :

  • Les Creational Design Patterns qui représentent tous les design patterns dédiés à la création d’objets. On y trouvera le Constructor Pattern, le Factory Pattern, etc. ;

  • Les Structural Design Patterns qui permettent de gérer et d’assembler des objets dans des structures plus grandes. Vous y trouverez, par exemple, l’Adapter Pattern et le Decorator Pattern ;

  • Et enfin les Behavioral Design Patterns qui correspondent à la communication entre les objets. On y trouve, par exemple, l'Observable Pattern et les State Patterns.

Distinguez les design patterns des designs d’architecture et des frameworks

Il y a souvent quelques confusions entre les design patterns et les designs d’architecture. Il est donc important de les distinguer clairement.

Un design pattern est relatif à la création, la manipulation et/ou la communication entre un ou plusieurs objets. Dans ce cas, vous travaillez sur un sujet assez précis : la communication avec une API, par exemple.

Un design d’architecture est un ensemble de règles et de conventions pour le design de l’application elle-même, qu’elle soit front-end ou back-end... Par exemple, quelle partie du code s’occupe de gérer les données, quelle partie s’occupe de les afficher, etc.

Donc, le MVC (Model-Vue-Controller), c’est un peu un design d’architecture, c’est ça ?

Exactement !

Le MVC et le MVVM (Model-Vue-Vue-Model) sont, par exemple, des designs d’architecture. Sachez que vous ne verrez pas de design d’architecture dans ce cours.

Et du coup, quelle est la différence entre un design pattern et un framework ?

Bonne question !

En fait, un design pattern est une proposition de solution à un problème donné. On doit donc l’implémenter (le coder). Un framework est une solution clé en main. C’est un peu comme une boîte à outils.

Pour coder un système de gestion de base de données, vous pouvez passer par l’outil du framework et le mettre en place avec quelques lignes de code.

Prenez en main le projet fil rouge

Maintenant que vous avez revu les bases de la programmation orientée objet, il est temps de vous plonger dans le code de Filmo Patterns. Je vous invite à cloner dès à présent le projet depuis GitHub ; vous pouvez rester sur la branchemain.

Essayez de comprendre comment le code JavaScript est codé. Ce dernier est situé dans le répertoirejs et contient trois fichiers :  api/Api.js,templates/MovieCardetApp.js  .

Dans la vidéo ci-dessous, je vous explique comment le code est architecturé.

En résumé

  • Les design patterns vous proposent des modèles de solutions à des problématiques récurrentes dans le monde du développement logiciel.

  • Il existe trois grands types de design patterns : les creational design patterns, les structural design patterns et les behavioral design patterns.

  • Les designs d’architecture vous permettent de répondre à des problèmes concernant l’ensemble de votre application.

  • Les frameworks sont comme des boîtes à outils qui contiennent des implémentations prêtes à l’emploi.

Vous connaissez maintenant les différents types de design patterns et les différences entre design patterns, designs d’architecture et frameworks. Vous allez maintenant découvrir dans la deuxième partie notre premier type de design pattern : les creational design patterns. Mais avant, testez vos connaissances grâce au quiz !

Exemple de certificat de réussite
Exemple de certificat de réussite