Je suis sûr que beaucoup d'entre nous ont vu des noms de méthode comme celui-ci à un moment ou à un autre:
UploadTheFileToTheServerPlease
CreateATemporaryFile
WriteTheRecordToTheDatabase
ResetTheSystemClock
Autrement dit, les noms de méthode qui sont également des phrases en anglais grammaticalement correctes, et qui incluent des mots supplémentaires uniquement pour les faire lire comme de la prose. Personnellement, je ne suis pas un grand fan de ces noms de méthodes "littéraux", et je préfère être succint, tout en étant aussi clair que possible. Pour moi, des mots comme "a", "an" et "the" semblent tout simplement maladroits dans les noms de méthode, et cela rend les noms de méthode inutilement longs sans vraiment ajouter quoi que ce soit d'utile. Je préférerais les noms de méthode suivants pour les exemples précédents:
UploadFileToServer
CreateTemporaryFile
WriteOutRecord
ResetSystemClock
D'après mon expérience, c'est beaucoup plus courant que l'autre approche consistant à écrire les noms plus longs, mais j'ai vu les deux styles et j'étais curieux de voir ce que les autres pensaient de ces deux approches.
Alors, êtes-vous dans le camp des "noms de méthode qui se lisent comme de la prose" ou dans les "noms de méthode qui disent ce que je veux dire mais lus à haute voix comme un mauvais camp de traduction d'une langue étrangère vers l'anglais"?
la source
WriteTheRecordToTheDatabase
. Si quelqu'un vérifiait cela, il serait sérieusement questionné.Please
"? WowRéponses:
Je conviens que les méthodes de prose sont nulles à une exception près:
Cas de tests unitaires
Ceux-ci ne sont généralement jamais appelés dans votre code et apparaissent dans les rapports de test. En tant que tel, il est pratique d'avoir des lectures avec un peu plus de prose:
Même cela devrait être fait avec parcimonie, mais je peux le voir comme au moins un cas où des ajouts grammaticaux peuvent rendre un peu plus facile l'expression de ce qui a réussi et de ce qui a échoué. C'est, bien sûr, à moins que votre langage / framework ne fournisse un bon mécanisme pour les descriptions de test dans la lecture de test autre que les noms de méthode, auquel cas ignorez également celui-ci.
la source
MethodUnderTest_Condition_ExpectedBehaviour
convention de dénomination des tests unitaires suggérée par Roy Osherove . par exempleAddOrder_WithInvalidCustomerId_Fails
,CreateItem_WithOutOfBoundsPrice_ReturnsError
etDeleteEvent_EventExistsInSeason_Succeeds
.._AdditionFails
et.._DeletionSucceeds
devrait être mieux. J'ai mis le résultat de la méthode, mais comme vous le faites remarquer, ils pourraient être confondus avec les tests de terminologie de réussite / échec.Pour paraphraser Lawrence de l'espace de bureau ...
la source
Ces noms «longs» ne sonnent pas comme de la prose . Lorsqu'ils sont seuls, peut-être, mais accompagnés du reste du code, ils ne font que gâcher davantage. Vérifiez-le:
Yuuuuk! ..
Ce n'est pas un texte anglais valide, et dans aucun langage de programmation il ne ressemblera à un. Il n'y a donc aucun sens à dépenser des octets en articles.
la source
bool ResultOfTheGentlyUploadOfTheFileToTheServer
Du point de vue des programmeurs, "UploadFileToServer" est plus logique et plus facile à lire et à comprendre que "UploadTheFileToTheServerPlease".
Plus que la grammaire anglaise, la lisibilité et la compréhensibilité comptent plus dans la programmation!
la source
UploadTheFileAndProcessItAndEmailTheOrdersToTheCustomers
, bien que je l' espère rien tout à fait mal que ça dans la vie réelle.Étant donné le nombre de fautes de frappe dans ma vie, je me retrouverais avec
Sérieusement, je regarderais même le nom de ma classe. Si ma classe s'appelait "File", j'irais probablement avec
Ce serait donc
Juste un exemple trivial, mais j'espère que c'est assez illustratif.
la source
File.UploadFileToServer
... ugh).Personnellement, je m'en fiche. Je les ai vus et ils ne me dérangent pas. Je n'ai même pas pensé à eux jusqu'à ce qu'un autre programmeur se soit moqué d'eux. J'ai trouvé choquant que quelqu'un se soucie tellement de quelque chose qui compte si peu. Je veux dire qu'il était en colère contre ça. Mais c'était au début de ma carrière, il y a environ 11 ans, et depuis lors, j'ai constaté que les développeurs en colère pour des choses mineures sont en fait assez courants. C'est pourquoi les gestionnaires de développeurs sont si bien payés. Ils doivent traiter avec les développeurs au quotidien.
Et je préfère voir ça que "UL_FlToSrv".
la source