Ce qu’un développeur doit savoir avant d'utiliser un framework
De nos jours, avec toute l'abondance des frameworks, beaucoup de gens sautent de l'un à l'autre sans même connaître le concept de base du langage, ni le problème que le framework essaie de résoudre. La plupart des frameworks sont soutenus par un modèle de conception (design pattern). Si vous avez étudié les structures de données ou la programmation orientée objet, vous saurez le pourquoi des designs patterns.
Dans cet article, nous allons voir pourquoi il est important de comprendre ce qui se cache derrière les frameworks et comment cela peut nous aider en tant que développeur.
Architecture des frameworks
POO : Programmation Orientée Objet ; LS : Langage de Scripting ; PF : Programmation Fonctionnelle ; ORM : Object Relational Mapping
Qu’est-ce qu’un framework ?
Un framework est un ensemble de composants logiciels organisés autour d’une architecture et des patterns (Wikipédia). Parmi les objectifs d’un framework nous avons, la simplification des concepts et syntaxes complexes d’un langage, la résolution du problème d’organisation lors de la phase de développement. Ce qui permettrait ainsi aux développeurs de se concentrer sur le nécessaire et laisser les autres responsabilités au framework, comme l’inversion de contrôle par exemple.
Si vous avez utilisé l’un des frameworks comme Laravel, Spring MVC ou bien Django, vous aurez compris qu’ils sont tous constitués autour des concepts comme les designs patterns, la programmation orientée objet et utilisent tous des ORM pour faciliter la communication avec une source de données (base de données par exemple).
Le Design Pattern MVC
Le MVC, Model View Controller est un design pattern lancé en 1978, il est l’un des designs patterns les plus utilisés surtout dans le développement web. Il permet d'organiser une application autour de trois concepts (Wikipédia)
Le MVC est utilisé par les frameworks : Symfony, Laravel, Spring MVC etc. Il existe plusieurs variantes du MVC comme le MVP (Model View Presenter), le MVVM (Model-View View Model).
Recommandé par LinkedIn
Les ORM
Un ORM, Object Relational Mapping, permet de définir des correspondances entre les schémas de la base de données et les classes (POO). On pourrait le désigner « comme une couche d'abstraction entre le monde objet et monde relationnel » (Wikipédia).
Ce qui est important de savoir à propos des ORM, eux aussi sont structurés autour des designs patterns pour mieux s’intégrer dans l’architecture déjà mise en place par les frameworks. Les designs patterns plus utilisés par les ORM sont, l'Active Record et le Repository Pattern.
Active Record
Le design pattern Active Record est une approche pour lire les données d'une base de données. Les attributs d'une table sont encapsulés dans une classe. Ainsi l'objet, instance de la classe, est lié à une ligne (enregistrement) de la base de données. Parmi les ORM qui utilisent l’Active Record on a : eloquent de Laravel, typeorm (nodejs) etc.
Repository Pattern
Utilisé par les ORM comme doctrine et typeorm, le repository consiste à isoler les opérations de la base de données dans une classe (repository), offrant ainsi une meilleure maintenabilité.
Conclusion
Avant d'utiliser tout type de framework, il est toujours important de comprendre les concepts de base du langage et le problème que le framework tente de résoudre. On peut aller plus loin en essayant de comprendre le design pattern utilisé par le framework. Ce faisant, utiliser n'importe quel framework qui implémente ce design pattern serait très évident.