Bibliothèque ou framework
Ce qui sépare une bibliothèque, que ton code appelle, d'un framework, qui appelle ton code : inversion de contrôle, points d'extension, cycle de vie imposé et coût de sortie.
- 21 cartes
- 3 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
Quelques cartes du deck
Bibliothèque : de quoi s'agit-il ?
Voir la réponse
Ensemble de fonctions ou de classes réutilisables que ton programme appelle quand il le décide, en gardant la maîtrise du déroulement.
Tu décides de l'ordre des appels et de la structure du programme : on peut en changer ou n'en utiliser qu'une partie sans réorganiser le reste.
Qu'affiche ce programme ?
```python
routes = {}
def route(chemin):
def enregistrer(fonction):
routes[chemin] = fonction
return fonction
return enregistrer
def servir(requetes):
print("démarrage")
for chemin in requetes:
print(routes[chemin]())
@route("/")
def accueil():
return "bonjour"
@route("/aide")
def aide():
return "aide"
servir(["/aide", "/", "/aide"])`démarrage,aide,bonjour,aidedémarrage,bonjour,aide,bonjouraide,bonjour,aide, sansdémarragedémarrage,bonjour,aide, puis rien d'autre
Voir la réponse
démarrage,aide,bonjour,aideLes deux fonctions ne sont jamais appelées par le code de l'application :
servir, qui joue le framework, les appelle selon les requêtes reçues, dans l'ordre des requêtes et non celui de leur définition.Avec une bibliothèque, c'est … qui appelle la bibliothèque ; avec un framework, c'est le … qui appelle ton code.
Voir la réponse
Avec une bibliothèque, c'est ton code qui appelle la bibliothèque ; avec un framework, c'est le framework qui appelle ton code.
Cette direction de l'appel est le critère de distinction : il ne dépend ni de la taille de l'outil, ni de son nom.
Framework : de quoi s'agit-il ?
Voir la réponse
Squelette d'application qui impose sa structure et son déroulement, et appelle le code que tu y branches aux moments qu'il choisit.
On gagne un cadre déjà fait, mais on s'engage sur ses conventions : en sortir, c'est souvent réécrire une grande part du programme.
Qu'affiche ce programme, qui passe une fonction de rappel à une bibliothèque ?
```python
def trier(valeurs, cle):
return sorted(valeurs, key=cle)
mots = ["chat", "éléphant", "ours"]
print(trier(mots, len))`['chat', 'éléphant', 'ours']['chat', 'ours', 'éléphant']['éléphant', 'chat', 'ours']['ours', 'chat', 'éléphant']
Voir la réponse
['chat', 'ours', 'éléphant']sortedappellelensur chaque mot pour obtenir la clé de tri : 4, 8 et 4. Les deux mots de 4 lettres gardent leur ordre d'origine. Ici le rappel est donné à une bibliothèque, mais c'est toujours le code appelant qui lance le tri.