Nommer une méthode «faire X si nécessaire»


23

Quelle est la bonne façon de nommer une méthode qui vérifie si X doit être fait et X le fait si nécessaire?

Par exemple, comment nommer une méthode qui met à jour une liste d'utilisateurs si de nouveaux utilisateurs se sont connectés? UpdateListIfNeededsemble trop long, alors que simple UpdateListimplique une opération éventuellement coûteuse et inutile à chaque fois. EnsureListUpdatedest également une variante.

C # a un bool TryXXX(args, out result)modèle (par exemple int.TryParse(str, out num)) pour vérifier si X est possible et le faire, mais c'est subtilement différent.


1
Juste un point de recommandation, des méthodes comme celle-ci, bien que bien intentionnées, doivent être créées avec prudence. En cours de route, ils ont tendance à se poivrer dans du code sans rapport sous le couvert de "juste au cas où" ou "l'ajout d'un appel dans X () a corrigé un bug, mais je ne sais pas pourquoi". Si vous avez la discipline d'appeler uniquement RefreshUserList()pendant LoginUser()et LogoutUser()non pendant (par exemple, GetUser()où la liste devrait être à jour), alors certainement, les conseils ci-dessous s'appliquent.
Kevin McCormick

Réponses:


25

J'ai tendance à utiliser Ensure. Cela signifie que l'on s'assure que quelque chose est pris en charge, mais que cela doit être fait. Si c'est déjà bien, vérifiez-le et nous avons terminé. Sinon, faites-le. Quoi qu'il en soit, assurez - vous simplement que cela est fait .


13

Ma préférence est UpdateList. S'il ne faut rien faire, tant pis. Les dépenses doivent toujours être minimisées de toute façon, donc si vous UpdateListfaites plus que nécessaire, quelque chose est incorrect dans sa mise en œuvre.

Fondamentalement, c'est le verbe qui vous indique ce que la méthode doit faire. CalculateXdevrait toujours recalculer X. GetYdevrait toujours retourner Y, mais ne faire le travail de le récupérer que si nécessaire. De même, UpdateZdemande une mise à jour de Z en supposant que cela soit fait de la manière la plus efficace possible.


2

Appelle moi peut etre"

Coopté à partir des extraits de Haskell que j'ai vus, essayez

UpdateListMaybe();

2
Je suppose que si je comprenais mieux Haskell, cela pourrait avoir plus de sens. Corollaire: si celui-ci est utilisé dans une langue autre que le haskell, il ne sera compris que par ceux qui connaissent le haskell.
Robert Harvey

2
Six ans plus tard, je suis un programmeur différent, avec un peu plus de connaissances sur les choses Haskell. Je n'approuve plus cette réponse, haha. Je suppose que mon idée à l'époque était d'utiliser le mot "peut-être" pour signifier que la fonction gère une sorte de faculté. Je fais toujours ça parfois (par exemple, l'option [A] => B s'appelle peut-être ToB)
Mark Canlas
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.