J’utilise la variable « p » dans mes expressions Lambda. Et vous?

C’est un collègue qui m’a fait remarquer aujourd’hui. Lorsque j’écris des expressions Lambda en C#, j’ai tendance à utiliser la variable p pour représenter mes expressions.

Voici un gist que j’ai créé il y a plus de 7 mois déjà.

Il s’agit de la meilleure façon de représenter la façon que je développe mes opérations LINQ. Certes, la variable p est mon choix par défaut pour la majorité des opérations. Il y a quand même quelques exceptions à cela. Une règle ne peut pas être une règle sans avoir d’exceptions, n’est-ce pas?

Un bon exemple est la méthode GroupBy. La signature la plus fréquemment utilisée requiert de spécifier un sélecteur pour la clé ainsi que pour les éléments à regrouper. Dans un cas comme celui-ci, j’ai tendance à représenter les deux paramètres en fonction de leur nature. Comme ceci:

Pour le Group By, il s’agit d’utiliser k pour la clé (key) et e pour les éléments regroupés. Encore là, à chaque fois que je regarde cet exemple, je me dis que la règle est vraiment arbitraire et n’est pas ancrée sur des règles solides. Uniquement mon goût personnel et mon humeur du jour.

Depuis que mon attention a été portée sur ce détail, je crois débuter à en faire une obsession. Étant donné ma préoccupation constante pour la qualité du code.

Alors, comment nommer une variable dans une expression Lambda?

Il s’avère que les avis à ce sujet sont assez partagés. Certains vont dire que, vu que le temps de vie d’une variable dans une expression lambda est court, il est admissible d’y aller avec une variable à une seule lettre. En revanche, d’autres vont affirmer que la variable dans l’expression lambda doit donner du contexte sur l’élément de collection en cours de manipulation.

Personnellement, je suis dans le camp de ceux qui utilisent de petits noms de variable dans mes expressions lambda. Je trouve que, dans la majorité des cas, le nom de cette variable a très peu d’impact pour améliorer la compréhension de l’opération LINQ.

Dans un cas comme le premier exemple de ce billet, c’est simple et concis. Il n’y a pas de chichis avec la compréhension de ce code ou même sur la compréhension de ce qui est accompli.

Si votre code est complexe, la variable, peu importe son apparence (un mot ou une lettre), ne fera rien pour régler le vrai problème. Ce problème étant que la complexité de votre solution requiert plus qu’une utilisation des fonctions LINQ.

Et toi, lecteur? As-tu un nom de variable préféré pour tes expressions LINQ?

Advertisements

3 avis sur « J’utilise la variable « p » dans mes expressions Lambda. Et vous? »

  1. Daniel dit :

    Hello rédacteur ! Pour ma part je préfère nommer la variable de la première lettre ou alors d’un acronyme qui correspond au type/nom de la variable que j’utilise.

    Dans ton cas :

    Repository
    .GetAllById(24)
    .Where(r => r.Country == « Canada »)
    .Select(r => r.UniqueIdentifier)
    .ToList()

    Cordialement,

    Moi

  2. Mermich dit :

    Bonjour et felicitations pour ce blog (c’est mon premier commentaire…)

    Pour en revenir a la question j’utilise la premiere lette de l’objet sur leauel je fait la lambda, par exemple:
    dbcontext.Users.Any(u => u.Login == user.Login)
    Dans la grande majorite des cas cela (me) suffit pas rappeller le contexte.

  3. baurez dit :

    Bonjour,

    Toujours content de fureter vos liens le lundi :)

    Et j’utilise aussi le « p », j’avoue que je sais pas pourquoi… sûrement que les premiers exemples d’utilisations que j’ai vu l’utilisait également :)

    Le « p » est mort ! Vive le « p » !

    Bonne journée !

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 :