Java SE 8 поставляється з новим механізмом дат, введення LocalDate, LocalTimeі LocalDateTimeкласів для подання моментів часу. Для управління такими миттєвостями, набір методів Дано: LocalDate.plusDays(...), LocalDate.minusDays(...)і так далі.
Я завжди вважав, що хороша практика - називати методи після дієслів, що описують їх призначення, оскільки методи - це фактично операції, які потрібно виконати, те, що буде виконувати дію. Просто кажучи, якщо розглядати класи як StringBuilder, наприклад, імена методи є append, insert, delete...
Ось чому для мене не звучить правильно називати метод plusDaysзамість sumDays, minusDaysа не subtractDays. Це мене просто дуже дратує? Як ти гадаєш?
Єдиною причиною, про яку я можу подумати, є те, що дати - це незмінні об'єкти, тож зателефонувавши, plusDaysщо ви не додаєте днів до початкового об’єкта, а створюєте новий з новими властивостями, але це дуже тонко.
sqrtце лише слово, яке програмісти повинні розпізнати та знати. Англійське слово - до речі, «квадратний корінь». Але називати речі відповідно до природного в англійській мові - це не добре. Візьмемо, наприклад, слово "незаконний", наприклад, прекрасне англійське слово. Однак, якщо хтось назвав їх метод, скажіть, isIllicitя думаю, я хотів би вирвати очні яблука кожного разу, коли я дивився на цей метод дзвінка. Це просто виглядає жахливо, і повинен бути кращий спосіб висловити свою ідею.
sumв цьому контексті звучить неправильно. Я віддаю перевагу .net's AddDays.
Math.addExact(1, 2)тому що ви говорите "додайте 1 і 2". tomorrow.plusDays(2)тому що ви говорите "завтра плюс 2 дні". Якби addExactчлен Integerякимось чином це був би 1.plusExact(2).
plusDaysповернути нову дату x кількість днів у майбутнє, тоді як addDaysя міг би мутувати вимкнення оригінального об'єкта. Це тільки я, хоча я не все так добре знайомий з Java.
sqrtякий називається корінь прямокутника. Ім’я цього методуtakeSqrtможе здатися сенсом у відповідності з вашим правилом, але називати його це не зробить метод більш читабельним, а також не зробить його більш зрозумілим.