Java SE 8 vem com um novo mecanismo para datas, introduzindo LocalDate
, LocalTime
e LocalDateTime
classes para representar instantes de tempo. Para manipular tais instantes, um conjunto de métodos são dadas: LocalDate.plusDays(...)
, LocalDate.minusDays(...)
e assim por diante.
Sempre achei que a boa prática era nomear métodos após verbos que descrevem seu objetivo, pois métodos são, na verdade, operações a serem executadas, algo que executará uma ação. Só para citar, se você considerar aulas como StringBuilder
, por exemplo, os nomes dos métodos são append
, insert
, delete
...
É por isso que, para mim, não parece certo nomear um método plusDays
em vez de sumDays
, minusDays
em vez de subtractDays
. Só eu acho isso muito chato? O que você acha?
A única razão pela qual consigo pensar é que as datas são objetos imutáveis; portanto, chamando plusDays
você não está adicionando dias ao objeto original, mas criando um novo com novas propriedades, mas isso é muito sutil.
sqrt
é apenas uma palavra que os programadores devem reconhecer e conhecer. A palavra em inglês é "raiz quadrada" a propósito. Mas nomear as coisas de acordo com o que é natural em inglês não é bom. Tome a palavra "ilícito", por exemplo, uma palavra perfeitamente inglesa. No entanto, se alguém nomear seu método, diga isIllicit
que acho que gostaria de arrancar meus olhos toda vez que observasse essa chamada de método. Parece horrível e deve haver uma maneira melhor de expressar a idéia.
sum
parece errado neste contexto. Eu prefiro .net's AddDays
.
Math.addExact(1, 2)
porque você diz "adicione 1 e 2". tomorrow.plusDays(2)
porque você diz "amanhã mais 2 dias". Se addExact
fosse um membro de Integer
alguma forma, teria sido 1.plusExact(2)
.
plusDays
retornar uma nova data x número de dias no futuro, enquanto addDays
eu poderia esperar que o objeto original fosse alterado. Mas sou apenas eu, não estou tão familiarizado com Java.
sqrt
que leva a raiz quadrada. Nomear esse métodotakeSqrt
pode parecer fazer sentido de acordo com sua regra, mas nomeá-lo não tornaria o método mais legível nem mais claro.