Qual é o melhor nome para um método que retorna um booleano?
IsSupportContentType
ou
CanSupportContentType
naming
naming-standards
Mediador
fonte
fonte
IsSupportedContentType
ser gramaticalmente correto. (a menos que "suporte tipo de conteúdo" age como um substantivo, o que parece improvável)supportsContentType
? O seguinte é inteiramente legível:if (abc.supportsContentType("text/html"))
. "pode suportar" implica que existem outras condições para suportar o tipo de conteúdo.Respostas:
Is vs. Can
De acordo com as recomendações da convenção de nomenclatura da Microsoft , "Is" e "Can" estão OK (e também "Has") como prefixo para um booleano.
Em inglês simples, "Is" seria usado para identificar algo sobre o tipo em si, não o que ele pode fazer. Por exemplo,
IsFixed
,IsDerivedFrom
,IsNullable
podem ser encontrados em tipos CLR e métodos. Em todos esses casos, "Is" é seguido por um adjetivo .Enquanto isso, "pode" indica mais claramente a capacidade de, por exemplo
CanEdit
,CanRead
,CanSeek
. Em cada um desses casos, can é seguido por um verbo .Como "Suporte" é um verbo, acho que no seu caso
CanSupportContentType
é melhor.Alternativa mais curta
Por outro lado, as convenções dizem que o prefixo é opcional. Além do mais, é meio cafona incluir o tipo de argumento no nome do método, pois um desenvolvedor pode ver o tipo de argumento no intellisense. Assim, você pode nomear seu método
Supports
e defini-lo assim:... que é mais curto e ainda comunica claramente o objetivo. Você chamaria assim:
Ou, como compromisso, talvez seja melhor:
fonte
if ( someClass.Supports(contentType) )
hasSupportedContentType
std::vector::empty()
. Apenas pelo nome, ele esvazia o vetor? Ou ele retorna se o vetor está vazio? Na verdade, o último, uma vez que a tarefa anterior é realizada porstd::vector::clear()
. Mas, em geral, você deve ler os documentos para ter certeza. Como exemplo oposto, os QtQVector
são mais fáceis de entender a esse respeito, já que seu método de verificação de vazio éQVector::isEmpty()
.Vale ressaltar que o prefixo " should " também pode ser usado. De acordo com as diretrizes da Apple , não apenas " pode " e " deveria ", os verbos modais em geral podem ser usados para nomear funções que retornam booleanas. Não vejo muitos usos de " will ", mas " should " é bom para ganchos de consulta de conselhos, como visto em reactjs:
fonte
WillCloseConnection
?is...
mas usamosshould...
em alguns nomes de argumentos de função, locais onde o booleano indica para o que a função deve mudar as coisas . Se uma função pode, opcionalmente, fechar um documento, chamando o parâmetro de controle queisClosed
seria preciso (que não está fechado ainda ) e portanto, usariashouldClose
para indicar que este é o que a função é suposto fazer. (Exemplo Arbitrária; nós provavelmente não têm uma função como esta, particularmente desde fechar um documento deve ser suficiente peso para ter um convite específico.)will...
é reservado para funções assíncronas que retornam uma promessa; se a função descrita no meu comentário anterior for síncrona, o usowill...
seria inconsistente com a nossa nomeação.