Que sont les cadres informatiques ? Et comment les utilise-t-on ?


Généralement parlant, un framework est similaire à une bibliothèque , mais forme un noyau plus central à une application.

Débutons en regardant ce qu'est une bibliothèque. C'est une collection de code, soit en format compilé ou en code source, qui fournit un ensemble de fonctionnalités à un autre programme. Par exemple, une bibliothèque graphique permet à un programme d'accéder à des morceaux de code préécrits pour générer une sortie graphique.


Un framework va un peu plus loin et fournit des fonctionnalités de bibliothèque et une structure autour de laquelle baser toute l'application.

Par exemple, prenez "Django" un framework d'application web populaire en python. Avec django, vous auriez a) Créer des "Views" , des pages web modélisées pour que le framework les serve, b) Des contrôleurs, des morceaux de code qui fournissent à la vue des données , et interprètent les informations entrantes pour diriger le traitement que le contrôleur doit faire, entre autres choses. c) Des modèles, des objets utilisés par les contrôleurs (et parfois les vues) qui représentent divers éléments de données qui doivent être créés, lus, mis à jour ou supprimés (CRUD !) généralement à partir d'une base de données. Les modèles peuvent également être mis à niveau avec du code pour que les données se comportent de manière plus intelligente, par exemple en s'assurant que les mots de passe correspondent, qu'un achat de 10 widgets à 2 $ entraîne un achat de 20 $. Etc. Et d) des définitions de 'routes', des définitions d'URL indiquant au framework quelles urls mènent à quels contrôleurs (et donc à quelles vues).

Maintenant, comparez cela avec la bibliothèque CGI de python. La bibliothèque CGI vous permettra également de créer des applications web, mais vous devrez fournir beaucoup de travail en dehors de la bibliothèque, d'abord configurer le navigateur web pour servir du contenu CGI (de plus en plus rare de nos jours, le CGI est une technologie très années 90), vous devrez concocter votre propre façon de créer la page web elle-même , vous devrez structurer vous-même les interactions des pages, en écrivant éventuellement du code pour analyser et décoder les données POST ou GET entrantes, vous devrez concocter votre propre couche de base de données pour stocker les données entrantes et récupérer les données sortantes, et ainsi de suite. Pour ce faire, vous pourriez utiliser, par exemple, une bibliothèque CGI pour interagir avec le serveur Web, une bibliothèque de modèles Jinja2 pour construire les pages, SQLAlchemy pour interagir avec la base de données, et peut-être quelques bibliothèques pour aider à valider les données, etc. C'est une façon parfaitement valable de construire un site web, mais construire une application uniquement à partir de bibliothèques individuelles est une tâche beaucoup plus fragmentaire et laborieuse car il n'y a pas d'interactions intégrées entre les bibliothèques à exploiter. Un framework a toutes les " batteries " incluses, et toutes câblées ensemble pour vous épargner l'effort.

L'inconvénient, bien sûr, c'est que parfois vous ne voulez pas toute la masse d'un framework. Django comprend un énorme éventail de composants à utiliser, tout, des générateurs de sites d'administration, aux utilitaires de migration de base de données, aux fonctions de traduction de langue, au code pour travailler avec des données géographiques dans des cartes et ainsi de suite, et pour un site simple, vous pourriez utiliser très peu de tout cela. Dans ce cas , vous pourriez opter pour un simple script CGI, ou vous pourriez utiliser un micro-framework comme Flask, qui est un framework beaucoup plus simple et moins capable ne comprenant que quelques parties (modèles, contrôleurs et routes, pas de modèles) et toute fonctionnalité supplémentaire nécessaire est fournie par l'ajout de bibliothèques (ie SqlAlchemy ou peewee).