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

Un avis sur « Développeurs .NET, êtes vous Lazy? »

  1. […] Mars : 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 )

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

%d blogueurs aiment ce contenu :