Encore moi: quelques détails
L’une des principales sources d’entrée sortie dans une application en avec Django est la base de données (avec le réseau, le disque et d’autres applications comme les caches, les files, etc.).
L’une des principales sources d’entrée/sortie dans une application avec Django est la base de données (avec le réseau, le disque et d’autres applications comme les caches, les files, etc.).
Imaginons que nous réalisons une API qui sera utilisée par un front-end pour créer l’âge de liste des produits:
l’âge de liste des produits ?
En effet en changeant du code qui utilise des objets a un code utilisant des dictionnaires
a un code => à un code
def get_list_data_for_product():
product = Product.objects.filter(...).first().only("color", "brand")
return product.color, product.brand. product.human_variant_price_display
il me semble qu’il y ait des erreurs dans le return
return product.color, product.brand, product.human_variant_price_display()
non ?
Il est possible d’ajouter des tests qui évite que quelqu’un empire la situation dans le futur (cf prochain billet).
Ce n’est plus un billet
si on ajoute un timeout de 200ms a l’appel et que le service ne répond pas dans le temps imparti
a l’appel => à l’appel
Il y a donc des chances que vos performances en termes de réseau, CPU, RAM , etc. diffèrent.
soit différent.
En parcourant l’onglet SQL de la Toolbar vous pourrez voir quel ligne du code a généré une requête, ce qui est pratique car grâce à l’APM vous savez déjà quel (requête) est lente en production.
quelle requête
Cet onglet donne de nombreux détails comme le nom de la base utilisée (si vous utilisez plusieurs bases de données) et qu’elle requête a été répétée plusieurs fois
quelle requête
À noter tout de fois que cette extension n’est pas prévue pour la production
toutefois
nous avions solutionné ce problème en écrivant un test runner Sur mesure.
sur mesure (pas de majuscule)
En ajoutant quelque chose de similaire à votre codebase vous empêchera les tests de réaliser de vrais appels réseaux.
à reformuler
Cela veut évidemment dire que vous ne resterez plus les services externes ou API
resterez => testerez ?
L’idée derrière VCR est de réaliser l’appel une première fois pour de vrai, d’enregistrer le résultat sans un fichier nommé cadette
sans => dans
cadette => cassette
L’installation net la configuration de VCR peut ajouter un peu de complexité à votre projet
je n’ai pas compris, l’installation net la configuration … un mot manque ou mal orthographié mais je ne comprend pas
il faudra toujours trouver un peu solution manuelle pour d’autres protocoles
une solution manuelle
alors n’hésitez pas a me contacter
à me contacter
Pour moi, il manque pas mal de signe de ponctuation: tu as tendances à faire des phrases très longues sans virgules, ce qui rend difficile la lecture parfois.
Sinon bon tuto