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