Les patterns, une solution à un problème terrain
Une expression qui revient souvent est que l’on ne devrait pas « réinventer la roue ». Imaginez le temps que perdrait un confectionneur de vélos, s’il devait à la fois inventer le mécanisme des roues, puis du système de chaîne, les vitesses, le frein. Heureusement, il existe des millénaires de connaissance, et il part donc sur une base déjà bien établie ! 🚲
Ça n'a jamais été aussi vrai en programmation. Nous avons acquis des décennies de savoir-faire, de réflexion sur le code, d’algorithmes mis au profit de tous… Ce serait donc dommage de ne pas en profiter.
Une des roues que l’on a tendance à réinventer se situe au niveau de l’architecture. Nous partons souvent de zéro pour trouver des solutions à nos problèmes ; nous essayons de créer des communications d’une classe à l’autre, en tâtonnant. Il existe pourtant des programmeurs qui se sont rassemblés un jour, et qui se sont dit : « Mais attends, ton code ici utilise un agencement que j’utilise aussi ! Et ça m’a souvent bien aidé. Et si on écrivait un livre en répertoriant tous ces mécanismes ? ».
Les design patterns étaient nés.
Qu’est-ce qu’un design pattern ?
Un design pattern, aussi nommé patron ou modèle de conception en français, est une solution éprouvée et réutilisable à un problème qui se produit fréquemment. Il décrit la nature statique ou dynamique des classes et objets qui implémentent la solution. Pour tout design pattern, vous êtes libre de personnaliser la solution pour l’adapter à votre situation spécifique.
Ils ont également remarqué que ces projets différents résolvaient les problèmes à peu près de la même façon. Leur livre traite de ces problèmes et de ces solutions, en leur donnant le nom de patterns, ou modèles.
Le monde des design patterns a évolué depuis cette époque, avec la popularité de langages plus modernes, tels que Python, qui sont conçus pour éviter certains de ces problèmes. 🎉
Ce concept reste extrêmement important, quel que soit le langage utilisé – et dans ce cours, nous traiterons de trois patterns particulièrement adaptés à Python.
Le design pattern Constant : ce pattern très simple facilite la mise à jour des valeurs dans le code pour les développeurs.
Le design pattern Décorateur (« Decorator ») : ce pattern de complexité modérée facilite la création de nombreuses fonctions qui accomplissent des choses similaires.
Le pattern Modèle-Vue-Contrôleur (« Model-View-Controller ») : ce pattern constitue une architecture que vous pouvez utiliser pour votre application dans son ensemble, facilitant la fiabilité des interactions des utilisateurs avec votre système.
En résumé
Les patterns sont des solutions éprouvées et fiables à des problèmes courants.
Bien utilisés, les patterns conduisent à une meilleure compréhension et une meilleure maintenabilité de votre code.
Rejoignez-moi au chapitre suivant, et nous nous lancerons avec le design pattern Constant.