Overcomplicated Expression

  • 읽기, 이해 및 유지 관리하기 어려운 지나치게 복잡한 코드를 작성하는 것을 의미한다.

1. 예시

  • 자바에서 중첩된 조건, 삼항 연산자, 메소드 호출 및 기타 복잡한 논리가 너무 많이 포함된 경우
  • 적절한 문서와 주석이 없는 경우
    • 가독성 저하
    • 유지 관리 비용 증가
    • 버그 발생 확률 증가

2. 이유

  • 이해 부족
  • 촉박한 시간
  • 코드 복붙
  • 리팩토링에 대한 저항감

3. 해결 방법

  • 복잡한 표현식을 작은 단위로 분해하기 : 표현식에서 별도의 메소드나 변수로 추출할 수 있는 부분을 파악해서 전체 논리를 단순화 하기
  • 설명적인 변수 이름 사용 : 변수, 메소드 이름은 설명적인, 의미있는 이름을 사용하기
  • 중첩된 조건 피하기 : if-else, 삼항연산자, switch 등 flat하기
  • 뚱뚱한 메소드 리팩토링 : 메소드 내에 관심사를 분리해서 내부에서 다른 메소드를 참조하도록 하세요
  • 문서화
  • 단위테스트 : 다양한 시나리오에서 예상대로 동작하는지 확인
  • 코드리뷰