open:code-smells

Code Smells

  • 전지 전능한 객체 God Object
    • 너무 많은 일을 시도하는 클래스로 응집도가 부족하다
  • 상수 클래스 Constant Class
    • 아무것도 아닌 어디서나 사용되는 상수의 컬렉션인 클래스로 상수 클래스에는 아무것도 포함되지 않는다.
  • 거부된 유산 Refuse Bequest
    • 기본 클래스에 관한 계약을 지키지 않는 클래스로 상송의 대체 원칙을 깨뜨린다
  • 프리로더 Freeloader
    • 기능이 너무 없는 클래스로 아무것도 하지 않고 가치를 추가하지 않는 클래스다
  • 기능에 관한 질투 Feature Envy
    • 높은 결합도를 의미하는 다른 클래스의 메소드에 과도하게 의존하는 클래스다
  • 긴 메소드 Long method
    • 너무 커지고 복잡해진 메소드나 함수
  • 파라미터 증가 Parameter creep
    • 함수나 메소드의 너무 많은 파라미터로 함수의 호출 능력과 테스트 용이성을 나쁘게 만든다.
  • 순환 복잡도 Cyclomatic complexity
    • 따르기 어려운 복잡한 로직을 만드는 과도한 분기와 루프를 가진 함수나 메소드로 미묘한 버그의 원인이 될 수 있다.
    • 과다한 분기를 방지하기 위해 리팩토링돼야 하고 여러 함수로 분할하거나 다시 작성해야 한다.
  • 과도하게 길거나 짧은 식별자 Overly long or short identifiers
    • 이름에서 용도를 명확하게 알려주지 않는 너무 길거나 짧은 변수 이름을 사용하는 함수로 함수 이름에도 똑같이 적용된다.

  • open/code-smells.txt
  • 마지막으로 수정됨: 2022/01/19 12:12
  • 저자 127.0.0.1