web-dev-qa-db-fra.com

Conventions de dénomination: Comment nommer une méthode renvoyant un booléen?

J'ai une interface en C # qui permet de récupérer des données à partir d'une archive personnalisée sur le serveur. L'interface ressemble à ceci:

public interface IRetrieveData
{
    bool OkToRetrieve(SomeData data); // Method in question...
    bool RetrieveToLocal(SomeData data);
}

Cette interface est implémentée par les clients qui extraient les données dans la base de données locale. Différents types de clients ont accès aux données des autres. Ainsi, lorsque le composant de traitement appelle IRetrieveData.OkToRetrieve juste avant la récupération réelle, l'appel est dirigé vers le code client où la décision est prise de savoir si les données doivent être récupérées ou non.

À ce stade, le client peut renvoyer false et cette donnée est ignorée ou renvoyer true. Le composant de traitement appelle RetrieveToLocal et envoie les données au client, qui les traite ensuite.

Ce qui me rend confus, c'est de savoir s'il faut renommer la méthode OkToRetrieve en Retrieve ou CanRetrieve ou le laisser à OkToRetrieve.

Quelqu'un a-t-il une suggestion?

35
ashtee
IsRetrievable()

Je pense qu'une méthode qui retourne une valeur booléenne devrait être nommée oui ou non.

57
Aziz

Nommez toujours les méthodes booléennes avec des noms similaires aux questions auxquelles vous pouvez répondre Oui ou Non.

Dans votre cas, CanRetrieve serait un bon nom (juste pour utiliser votre propre suggestion).

18
eKek0

Pourquoi ne pas utiliser le préfixe "devrait"?

ShouldRetrieve(SomeData data);
10
dannie.f

Dans ce cas précis, je le nommerais probablement:

public bool IsReady (SomeData)

Parce que cela montre plus clairement ce qui se passera une fois que cela retournera true.

6
Noon Silk

Cela dépend de votre cas d'utilisation. J'aime les préfixer avec des mots tels que "est", "fait" ou "peut": IsSomePropertySoAndSo, DoesNounSupportFeature et comme exemple CanVerb

5
arviman

Les méthodes signifient action. Par conséquent, je préfère que les noms de méthodes commencent par un verbe. Que diriez-vous?

CheckIsRetrievable(SomeData data)
5
Mehmet Aras

si vous faites plus de contrôles et que isRetrievable () n'est pas approprié, vous pouvez utiliser:

IsValid()
2
davidsleeps

CanRetrieve me convient parfaitement. J'ai vu le Can stem utilisé dans les API Microsoft. La seule autre véritable option disponible à l’OMI est IsRetrievable (de Aziz), ce qui semble trop tordu sur le plan linguistique!

1
spender

Je préférerais isOKToRetrieve ou isRetrieveOK aux variantes sans "is" en vertu de la convention selon laquelle les fonctions et les méthodes devraient être des verbes.

1
Tyler McHenry

Dans les conventions de nommage, il est écrit que le nom de la méthode doit être verbe

0
user2679146

Généralement, les méthodes/fonctions indiquent des actions et doivent donc être précédées des verbes. par exemple. vérifier, obtenir, faire, etc. 

La convention de dénomination commune aux variables booléennes consiste à les préfixer avec des verbes d'aide, par exemple. est-ce que

Je penserais que la combinaison des deux conventions aboutirait à un assez bon modèle de discernement. Donc, getIsRetreivable () ou checkIsRetrievable () me semblerait bien.

0
Cary Meskell

MayRetrieve() pourrait être un meilleur nom si le résultat est déterminé par l'autorisation/l'accès de l'utilisateur.

IsRetrievable() est plus ambigu, ce qui peut être plus approprié s'il existe d'autres considérations en plus de, ou autre que la permission.

0
Billy