Java SE 8 jest wyposażony w nowy mechanizm dat wprowadzenia LocalDate, LocalTimei LocalDateTimeklas do reprezentowania chwilach czasu. Manipulować takie momenty, zestaw metod podano: LocalDate.plusDays(...), LocalDate.minusDays(...)i tak dalej.
Zawsze myślałem, że dobrą praktyką było nazywanie metod po czasownikach opisujących ich cel, ponieważ metody są w rzeczywistości operacjami do wykonania, czymś, co wykona akcję. Wystarczy wspomnieć, jeśli wziąć pod uwagę zajęcia jak StringBuilderna przykład nazwy metod są append, insert, delete...
Dlatego dla mnie to nie brzmi prawo nazywania metodę plusDayszamiast sumDays, minusDayszamiast subtractDays. Po prostu uważam to za bardzo irytujące? Co myślisz?
Jedynym powodem, dla którego mogę wymyślić, jest to, że daty są niezmiennymi obiektami, więc dzwoniąc plusDays, nie dodajesz dni do oryginalnego obiektu, ale tworzysz nowy z nowymi właściwościami, ale to bardzo subtelne.
sqrtto tylko słowo, które programiści powinni rozpoznać i poznać. Nawiasem mówiąc, angielskie słowo to „pierwiastek kwadratowy”. Ale nazywanie rzeczy zgodnie z tym, co naturalne w języku angielskim, nie jest dobre. Weźmy na przykład słowo „niedozwolone”, na przykład doskonale angielskie słowo angielskie. Jeśli jednak ktoś isIllicitnazwałby tę metodę, powiedz, że myślę, że chciałbym oderwać oczy za każdym razem, gdy patrzę na to wywołanie metody. Wygląda to po prostu okropnie i musi istnieć lepszy sposób na wyrażenie tego pomysłu.
sumw tym kontekście brzmi źle. Wolę .net AddDays.
Math.addExact(1, 2)ponieważ mówisz „dodaj 1 i 2”. tomorrow.plusDays(2)ponieważ mówisz „jutro plus 2 dni”. Gdyby addExactbył jakimś członkiem, Integertak by było 1.plusExact(2).
plusDayssię zwrócić nową datę x liczbę dni w przyszłość, podczas addDaysgdy mógłbym oczekiwać mutacji oryginalnego obiektu. To tylko ja, ale ja nie znam się na Javie.
sqrtpierwiastek kwadratowy. Nazywanie tej metodytakeSqrtmoże wydawać się sensowne zgodnie z twoją regułą, ale nazywanie jej nie uczyni tej metody bardziej czytelną ani nie uczyni jej bardziej zrozumiałą.