자바 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)"add 1 and 2"라고 말했기 때문입니다. tomorrow.plusDays(2)"내일 더하기 2 일"이라고 말했기 때문입니다. 경우 addExact의 일원이었다 Integer어떻게 든했을 것이다 1.plusExact(2).
plusDays새로운 날짜를 x 일 동안 미래로 되돌릴 것으로 예상 되는 반면, addDays나는 원래의 객체를 변형시킬 것으로 기대할 수 있습니다. 그래도 나는 단지 자바에 익숙하지 않다.
sqrt제곱근을 취하는 메소드를 고려하십시오 . 이 메소드의 이름을 지정takeSqrt하는 것은 규칙에 따라 의미가있는 것처럼 보이지만 이름을 지정하면 메소드를 더 읽기 쉽게 만들거나 명확하게 만들 수 없습니다.