Développeurs .NET, êtes vous Lazy?

Je crois qu’il n’y a pas une journée où je ne m’attends pas à être surpris par une technologie que j’utilise. Est-ce que cela vous arrive souvent de ne rien apprendre du tout dans l’équivalent d’une journée? Moi, non. Même que c’est quelque chose qui arrive toujours lorsque je ne m’y attends pas!

Si vous êtes un développeur expérimenté, je suis pratiquement certain que vous avez déjà écrit ce genre de code lorsque vous avez à exposer certaines propriétés d’une classe.

Il s’agit d’une technique appelée du Lazy Initialization ou un property backing field. C’est comme vous voulez, ça revient un peu au même.

La raison d’être de ce code est simple. Vous désirez éviter d’avoir à exécuter le code d’une propriété à chaque fois que vous l’invoquez. Alors, ce que vous devez faire c’est comme dans l’exemple ci-haut. Utiliser un objet qui contiendra la valeur de cette propriété le temps de la vie de l’objet.

Cette technique n’est pas parfaite, car vous devez maintenant penser à une stratégie pour l’invalidation de cette mise en mémoire. Alors, il s’agit d’une technique qui doit vraiment être uniquement appliquée sur des données ayant une petite durée de vie.

Ditez bonjour à Lazy<T>

Depuis .NET 4, Microsoft a ajouté une classe permettant de faire du Lazy Initialization à même le framework. Cela se fait en utilisant la classe Lazy<T>.

Ce que vous voyez ici est le même code que celui précédemment démontré en utilisant Lazy<T>. C’est beaucoup plus évident de déterminer l’intention du code dans cet exemple-ci. De plus, comme je dis souvent, moins de code, moins d’erreurs possibles.

En supplément, Lazy<T> est tread safe par défaut. C’est un argument de plus qui fait pencher la balance un peu plus en sa faveur. N’est-ce pas?

Ressources supplémentaires

Advertisements

Auteur : Pascal Paradis

Je suis les mains et le cerveau derrière http://frenchcoding.com. Je développe des microservices chez @UbisoftMTL. Amateur de Hockey et j'aime la technologie, en général.

One thought on “Développeurs .NET, êtes vous Lazy?”

Laisser un commentaire

Entrer les renseignements ci-dessous ou cliquer sur une icône pour ouvrir une session :

Logo WordPress.com

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

Photo Google+

Vous commentez à l’aide de votre compte Google+. 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 )

w

Connexion à %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.