Quel est le meilleur nom pour une méthode qui retourne un booléen?
IsSupportContentType
ou
CanSupportContentType
naming
naming-standards
Médiateur
la source
la source
IsSupportedContentType
être grammaticalement correct. (sauf si "type de contenu de support" agit en tant que nom, ce qui semble peu probable)supportsContentType
? Ce qui suit est tout à fait lisible:if (abc.supportsContentType("text/html"))
. "peut supporter" implique qu'il existe d'autres conditions pour prendre en charge le type de contenu.Réponses:
Est vs peut
Selon les recommandations de la convention de dénomination Microsoft , "Est" et "Peut" sont corrects (et donc "Has") en tant que préfixe d'un booléen.
En clair, "Is" serait utilisé pour identifier quelque chose à propos du type lui-même, pas ce qu'il peut faire. Par exemple,
IsFixed
,IsDerivedFrom
,IsNullable
peuvent être trouvés dans les types CLR et méthodes. Dans tous ces cas, "Est" est suivi d'un adjectif .Pendant ce temps, « peut » plus indique clairement une capacité, par exemple
CanEdit
,CanRead
,CanSeek
. Dans chacun de ces cas, can est suivi d'un verbe .Puisque "Support" est un verbe, je pense que dans votre cas,
CanSupportContentType
c'est mieux.Alternative plus courte
Par ailleurs, les conventions stipulent que le préfixe est facultatif. De plus, il est un peu ridicule d'inclure le type d'argument dans le nom de la méthode, puisqu'un développeur peut voir le type de l'argument dans intellisense. Vous pouvez donc simplement nommer votre méthode
Supports
et la définir comme suit:... qui est plus courte et communique toujours clairement le but. Tu l'appellerais comme ça:
Ou comme compromis peut-être que c'est mieux:
la source
if ( someClass.Supports(contentType) )
hasSupportedContentType
std::vector::empty()
. De son nom seulement, est-ce qu'il vide le vecteur? Ou renvoie-t-il si le vecteur est vide? En réalité le dernier, puisque le premier travail est fait parstd::vector::clear()
. Mais vous devez en général lire la documentation pour en être sûr. En tant qu'exemple opposé, Qt'sQVector
est plus facile à comprendre à cet égard, puisque sa méthode de vérification du vide estQVector::isEmpty()
.Il est à noter que le préfixe " devrait " peut également être utilisé. Selon la directive d'Apple , non seulement « peut » et « devraient », les verbes modaux en général peuvent être utilisés pour les fonctions de nom que booléen de retour. Je ne vois pas beaucoup d’utilisation de " volonté " mais " devrait " est bien pour les hameçons de conseil-consultants, comme on le voit dans les réactions:
la source
WillCloseConnection
?is...
mais nous utilisonsshould...
dans certaines fonctions des noms d'arguments, des endroits où le booléen indique en quoi la fonction est censée changer les choses . Si une fonction peut éventuellement fermer un document, appeler le paramètre qui le contrôleisClosed
serait précis (ce n'est pas encore fermé ) et nous utiliserions doncshouldClose
pour indiquer que c'est ce que la fonction est supposée faire. (Exemple arbitraire; nous n'aurions probablement pas une fonction comme celle-ci, d'autant plus que la fermeture d'un document devrait être assez pesante pour pouvoir avoir un appel dédié.)will...
est réservé aux fonctions asynchrones qui renvoient une promesse; Si la fonction décrite dans mon précédent commentaire est synchrone, l'utilisationwill...
serait incompatible avec notre nom.