본문 바로가기
  • SDXL 1.0 + 한복 LoRA
  • SDXL 1.0 + 한복 LoRA
Development/JAVA

[디비 파기 | PMD] AvoidBranchingStatementAsLastInLoop외 3건

by 마즈다 2016. 3. 5.
반응형



AvoidBranchingStatementAsLastInLoop

우선순위 : 2

루프의 가장 마지막 위치에서 분기문을 사용하는 경우 버그가 발생할 가능성이 높다.

사용한 방법이 버그가 아닌지 확인하거나 다른 접근 방법을 사용해야 한다.

 

샘플 코드

 

부연설명

Loop문의 내의 continue문이나 break문은 문장의 흐름을 제어하는 역할로 가독성의 측면에서 본다면 문장의 정상적인

흐름을 방해하는 부분도 있습니다. 이러한 요소가 자주 사용된다는 것은 그만큼 문장의 흐름을 이해하기 힘들게 만들고

또 그러인해 버그가 발생할 가능성이 높아질 것입니다.

가급정 문장 흐름을 제어하는 문장은 적게 사용하는 것이 좋겠습니다.




SimplifiedTernary

우선순위 : 3

조건문?boolean 상수:foo 또는 조건문?foo:boolean 상수 형태의 3항 연산자를 사용이 필요하다면

이러한 문장은 각각 다음과 같이 간단하게 표현할 수 있다.

boolean 상수가 처음 결과이면서 true인 경우     : condition || foo

boolean 상수가 두 번째 결과이면서 true인 경우  : !condition || foo

boolean 상수가 처음 결과이면서 false인 경우    : !condition && foo

boolean 상수가 두 번째 결과이면서 false인 경우 : condition && foo

 

샘플 코드

 

3항 연산자는 대체로 가독성을 떨어뜨리므로 가능한한 단순한 표현으로 대체하라는 의미입니다.




~MustUseBraces

우선순위 : 3

 

이 룰셋에 해당하는 룰은 총 4가지가 있습니다.

전체적인 내용은 코드의 가독성을 위해 if, if/else, while, for문에 반드시 braces({})를 사용하라는 것입니다.

전체 내용 그대로 옮깁니다~

 

IfStmtsMustUseBraces

샘플 코드

 

WhileLoopsMustUseBraces

샘플코드

 

IfElseStmtsMustUseBraces

샘플코드

 

ForLoopsMustUseBraces

샘플코드

 



UnnecessaryConstructor

우선순위 : 3

 

다음과 같은 경우에는 생성자가 필요없습니다.

하나의 생성자만 있으며, public이고 생성자의 내용이 없으며 전달받은 인자가 없는 경우

 

샘플코드

 

 

부연설명

위와 같은 경우에는 컴파일러가 자동으로 기본 생성자를 생성하므로 굳이 명시적으로 코딩을 할 필요가 없다.

다만 기본 생성자가 아닌 새성자를 추가하게 되면 컴파일러는 기본생성자를 자동으로 추가하지 않으며

필요에 따라 기본 생성자를 코딩해주어야 한다.


반응형