Tenho certeza de que muitos de nós já vimos nomes de métodos como esse em um ponto ou outro:
UploadTheFileToTheServerPlease
CreateATemporaryFile
WriteTheRecordToTheDatabase
ResetTheSystemClock
Ou seja, nomes de métodos que também são frases em inglês gramaticalmente corretas e incluem palavras extras apenas para fazê-las ler como prosa. Pessoalmente, não sou muito fã desses nomes de métodos "literais" e prefiro ser sucinto, embora seja o mais claro possível. Para mim, palavras como "a", "an" e "the" parecem desajeitadas nos nomes dos métodos, e isso torna desnecessariamente longos os nomes dos métodos sem realmente adicionar algo útil. Eu preferiria os seguintes nomes de métodos para os exemplos anteriores:
UploadFileToServer
CreateTemporaryFile
WriteOutRecord
ResetSystemClock
Na minha experiência, isso é muito mais comum do que a outra abordagem para escrever os nomes mais longos, mas vi os dois estilos e fiquei curioso para ver o que os outros pensavam sobre essas duas abordagens.
Então, você está no campo "nomes de métodos que parecem prosa" ou "nomes de métodos que dizem o que quero dizer, mas lidos em voz alta como um campo ruim de tradução de idioma estrangeiro para inglês"?
fonte
WriteTheRecordToTheDatabase
. Se alguém fizesse o check-in, eles conversariam seriamente.Please
"? WowRespostas:
Concordo que os métodos em prosa são ruins com uma exceção:
Casos de teste de unidade
Geralmente, eles nunca são chamados no seu código e aparecem nos relatórios de teste. Como tal, é útil ter leituras com um pouco mais de prosa:
Mesmo isso deve ser feito com moderação, mas posso ver isso como pelo menos um caso em que as adições gramaticais podem tornar um pouco mais fácil expressar o que passou e o que falhou. Isso é claro, a menos que sua linguagem / estrutura forneça um bom mecanismo para descrições de teste na leitura de teste que não sejam nomes de métodos, nesse caso, ignore esse também.
fonte
MethodUnderTest_Condition_ExpectedBehaviour
convenção de nomeação de teste de unidade sugerida por Roy Osherove . por exemploAddOrder_WithInvalidCustomerId_Fails
,CreateItem_WithOutOfBoundsPrice_ReturnsError
eDeleteEvent_EventExistsInSeason_Succeeds
.._AdditionFails
e.._DeletionSucceeds
deveria ser melhor. Eu coloquei o resultado do método, mas como você aponta, eles podem ser confundidos com a terminologia de aprovação / falha de teste.Parafraseando Lawrence de Office Space ...
fonte
Tais nomes "longos" não parecem prosa . Quando estão sozinhos - talvez, mas acompanhados com o restante do código, eles apenas fazem mais confusão. Confira:
Yuuuuk! ..
Este não é um texto válido em inglês e, em nenhuma linguagem de programação, ele se parecerá com um. Portanto, não faz sentido gastar bytes em artigos.
fonte
bool ResultOfTheGentlyUploadOfTheFileToTheServer
Da perspectiva dos programadores, "UploadFileToServer" faz mais sentido e é mais fácil de ler e entender do que "UploadTheFileToTheServerPlease".
Mais do que a gramática inglesa, a legibilidade e a compreensão são mais importantes na programação!
fonte
UploadTheFileAndProcessItAndEmailTheOrdersToTheCustomers
, embora esperemos que nada seja tão ruim na vida real.Dado quantos erros de digitação minha vida, eu acabaria com
Sério, eu até olhava o nome da minha classe também. Se minha turma fosse chamada "Arquivo", eu provavelmente iria apenas com
Então seria
Apenas um exemplo trivial, mas espero que seja ilustrativo o suficiente.
fonte
File.UploadFileToServer
... ugh).Eu pessoalmente não ligo. Eu os vi e eles não me incomodam. Eu nem pensei neles até outro programador ter discutido sobre eles. Achei chocante que alguém se importasse tanto com algo que importa tão pouco. Quero dizer, ele estava realmente bravo com isso. Mas isso foi no início da minha carreira, há cerca de 11 anos, e desde então eu descobri que os desenvolvedores com raiva de coisas menores são realmente bastante comuns. É por isso que os gerentes de desenvolvedores são tão bem pagos. Eles têm que lidar com desenvolvedores diariamente.
E eu prefiro ver isso do que "UL_FlToSrv".
fonte