Mock objet : vertu écologique ?

Pour commencer ce billet, rappelon ce qu’est un mock object.

Pour résumer il s’agit d’un objet qui en simule un autre.
Il reproduit exactement le.même comportement que l’original

« Ben alord ca sert a quoi de le simuler : autant travailler directement avec le vrai »

En fait ce qui est intéressant dans un mock ce n’est pas ce qu’il est mais ce qu’il contient ou ce à quoi il permet d’accéder

On parle beaucoup de mock lorsqu’il s’agit de réaliser du calcul de données, de solliciter une base de données, un service web.
Pourquoi donc ?

Le but du jeu se trouve dans la répétition. Si je demande a un objet de réaliser N fois
– le même calcul complexe
– la même requête SQL
– la même collection de coordonnées geographiques
– le même graphe mathématique

…et que cette opération lourde est censée me retourner toujours le même résultat, surtlut en phase de test de code.
Alors il est recommandé d’appliquer  mock.

C’est simple : le mock met en cache le résultat d’une opération lourde/longue/coûteuse quand le résultat est toujours le même.
On travaille ainsi avec un cache de résultat en local, ainsi ca evite de solliciter le service web de production.
En effet dans notre situation, ce qui importe c’est d’avoir un jeu de données de qualité
C’est tout.
On s’en fiche que ces données viennent juste d’être calculées par un serveur ou bien au chaud dans une BDD locale.

Par exemple: pour mes tests j’ai besoin de geolocaliser mes amis facebook sur une carto google maps.
1. Ma liste d’amis Facebook j’en ai besoin qu’une seule fois
2. Leurs coordonnées geographiques j’ai besoin de les faire résoudre d’après les adresses postales auprès du moteur SIG de Google une seule fois. D’autant plus que le quota de points calculable est limité sinon payant.

Ainsi avec l’objet de prod je récupère les deux jeux de données une seule fois auprès des API facebook et google, je constitue un tableau associatif type JSON ou Redis sur ma machine, bref un cache type NoSql.
A partir de la je mocke cet objet, qui lui ne manipule que les données en cache. Je n’ai plus besoin de solliciter les serveurs facebook et google tant que mon jeu de données est valable.

Et meme mieux que ca: je peux me servir de ce cache pour placer moi meme les points GPS sur la carto google maps a l’aide d’une simple librairie jQuery Google Maps.
Ca represente encore un cout economisé

Bref tout ca pour dire qu’un mock evite de solliciter les serveurs de prod pour rien quand les données d’exploitation ne changent pas : moins de consommation inutile, donc moins d’empreinte énergétique.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s