Java SE 8 поставляется с новым механизмом дат, введения LocalDate
, LocalTime
и LocalDateTime
классов для представления моментов времени. Для того, чтобы управлять такими мгновениями, набор методов Дано: LocalDate.plusDays(...)
, LocalDate.minusDays(...)
и так далее.
Я всегда думал, что хорошей практикой было называть методы после глаголов, описывающих их назначение, так как на самом деле методы - это выполняемые операции, то, что будет выполнять действие. Просто говоря, если рассматривать классы как StringBuilder
, например, имена методы являются append
, insert
, delete
...
Вот почему мне кажется неправильным называть метод plusDays
вместо sumDays
, minusDays
вместо subtractDays
. Просто я нахожу это очень раздражающим? Что вы думаете?
Единственная причина, по которой я могу придумать, состоит в том, что даты являются неизменяемыми объектами, поэтому, вызывая, plusDays
вы не добавляете дни к исходному объекту, а создаете новый с новыми свойствами, но это очень и очень тонко.
sqrt
это просто слово, которое программисты должны распознавать и знать. Кстати, английское слово «квадратный корень». Но называть вещи в соответствии с тем, что естественно в английском языке, не очень хорошо. Возьмите слово «незаконный», например, прекрасно английское слово. Однако, если кто-то назвал свой метод, скажем, isIllicit
я бы хотел вырвать себе глазные яблоки каждый раз, когда я смотрел на этот вызов метода. Это выглядит просто ужасно, и должен быть лучший способ выразить идею.
sum
звучит неправильно в этом контексте. Я предпочитаю .net AddDays
.
Math.addExact(1, 2)
потому что вы говорите «добавить 1 и 2». tomorrow.plusDays(2)
потому что вы говорите "завтра плюс 2 дня". Если бы addExact
был членом Integer
каким-то образом, это было бы 1.plusExact(2)
.
plusDays
бы вернуть новую дату x количество дней в будущем, тогда как addDays
я мог бы ожидать изменить исходный объект. Хотя это только я, я не настолько знаком с Java.
sqrt
который называется квадратный корень. Наименование этого методаtakeSqrt
может показаться целесообразным в соответствии с вашим правилом, но его наименование не сделает метод более читабельным и не сделает его более понятным.