Java SE 8 est livré avec un nouveau mécanisme pour les dates, l' introduction LocalDate
, LocalTime
et des LocalDateTime
classes pour représenter instants de temps. Pour manipuler ces instants, un ensemble de méthodes sont données: LocalDate.plusDays(...)
, LocalDate.minusDays(...)
et ainsi de suite.
J'ai toujours pensé que la bonne pratique consistait à nommer les méthodes après des verbes décrivant leur objectif, car les méthodes sont, en fait, des opérations à exécuter, quelque chose qui exécutera une action. Il suffit de mentionner, si l' on considère les classes comme StringBuilder
, par exemple, les noms de méthodes sont append
, insert
, delete
...
C'est pourquoi pour moi cela ne sonne pas juste de nommer une méthode plusDays
au lieu de sumDays
, minusDays
au lieu de subtractDays
. C'est juste que je trouve ça très ennuyeux? Qu'est-ce que tu penses?
La seule raison pour laquelle je peux penser est que les dates sont des objets immuables, donc en appelant, plusDays
vous n'ajoutez pas de jours à l'objet d'origine mais en créez un nouveau avec de nouvelles propriétés, mais c'est très très subtil.
sqrt
n'est qu'un mot que les programmeurs doivent reconnaître et connaître. Le mot anglais est "racine carrée" soit dit en passant. Mais nommer les choses en fonction de ce qui est naturel en anglais n'est pas bon. Prenez le mot «illicite», par exemple, un mot anglais parfaitement fin. Cependant, si quelqu'un a nommé sa méthode, disons que isIllicit
je pense que je voudrais arracher mes globes oculaires chaque fois que je regarde cet appel de méthode. Cela a l'air horrible et il doit y avoir une meilleure façon d'exprimer l'idée.
sum
sonne mal dans ce contexte. Je préfère les .net AddDays
.
Math.addExact(1, 2)
parce que vous dites "ajoutez 1 et 2". tomorrow.plusDays(2)
parce que vous dites "demain plus 2 jours". Si j'avais addExact
été membre d'une Integer
manière ou d'une autre, cela aurait été le cas 1.plusExact(2)
.
plusDays
à retourner une nouvelle date x nombre de jours dans le futur, alors que addDays
je pourrais m'attendre à muter l'objet d'origine. C'est juste moi cependant, je ne suis pas très familier avec Java.
sqrt
qui prend la racine carrée. Nommer cette méthodetakeSqrt
peut sembler logique selon votre règle, mais la nommer ne rendra pas la méthode plus lisible ni plus claire.