여러 가지 분석 검사는 코딩 기준이있는 개발 팀에게 제공되며 이유 중 하나 또는 다른 이유로 특정 작업 순서를 선호합니다. 조직의 정책에 따라 정책을 설정하거나 해제 할 수 있으며 정책을 개발자에게 배포하여 일관성을 유지할 수도 있습니다. 이 때문에 분석의 일부는 모순입니다. 일부 조직은 편도와 다른 조직을 선호하기 때문입니다. 이런 경우 조직이 다른 조직보다 나은 이유를 설명하는 것은 조직에 달려 있습니다.
지금까지이 기본적으로이 방법이 왜, 내가 ==
피연산자의 순서로 할 필요가없는, 두 가지 이유를 제시 할 수 있지만, 순서가 equals
및 assertEquals
비교를 합리적하기 때문에 코딩 표준이를 할 수 있습니다로 == 비교를 위해 동일하게하기 위해서.
먼저 상수를 먼저 입력하는 것이 더 안전합니다. foo는가 null의 경우 첫 번째는 NPE을받지 않습니다 때문에 예를 들어, 표현
if(CONSTANT.equals(foo)){...}
은 안전보다는
if(foo.equals(CONSTANT)){...}
이다.
둘째, 코드를 단순화 할 수 있습니다. 예를 들어, 다음은 동일합니다
if(foo != null && foo.equals(CONSTANT)){...}
if(CONSTANT.equals(foo))
또 다른 이유는 아마도 값이 시험 전에 몇 가지 API를에서 "예상"값이 일반적으로 예상되는 경우 잘못된 진단 정보를 산출 할 때 JUnit의 assertEquals
같이 오는 것입니다 가치가 먼저 오지 않는다.
내가 과거에 들었던 이유는 비교에서 예상되는 값이 먼저 올 때 더 읽기 쉽다는 것입니다. 첫 번째라면 식에서 검사 할 값을 찾아야 할 필요가 없습니다.
제안을 수락하면 다시 뒤집을 것을 제안합니다. 가장 가독성이 높은 것을 찾는 것은 당신에게 달려 있습니다. 그렇지 않으면 중요하지 않습니다. –
또한 [Yoda 조건 wiki 페이지] (https://en.wikipedia.org/wiki/Yoda_conditions)에서 이점 (일부는 아래 답변에 표시)과 비평 인 – Morfic
을 모두 볼 수 있습니다 @JBNizet'while (tree.children(). length == 1)'의 경우, 한 번 뒤집어서 뒤집기를 제안하지만 뒤집기를 수락하면 아무 것도하지 않습니다. –