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может показаться целесообразным в соответствии с вашим правилом, но его наименование не сделает метод более читабельным и не сделает его более понятным.