독서일지/클린 코드

클린 코드 독서일지 - Day 34

Sadie Kim 2023. 12. 10. 23:41

JUnit 들여다보기

JUnit : 유명한 자바 프레임워크. 구현이 잘 되어 있음.

JUnit 프레임워크

JUnit의 ComparisonCompactor 모듈을 살펴 본다.
-> 두 문자열을 받아 차이를 반환하는 코드.
ex) ABCDE와 ABXDE를 받으면 <…B[X]D…>를 반환
코드를 살펴보면 잘 분리되었고 표현력이 적절하며 구조가 단순함.
ComparisonCompactor 모듈을 살펴 보고 보이스카우트 규칙에 따라 리팩토링해 보는 시간을 가진다.

리팩토링 과정

  • 멤버 변수 앞에 붙인 접두어 f 제거
    오늘날 사용하는 개발 환경에서는 변수 이름에 범위를 명시할 필요가 없으며 접두어 f는 중복되는 정보임.
  • 캡슐화되지 않은 조건문 캡슐화
    의도를 명확히 표현하기 위해 조건문을 메서드로 뽑아내 적절한 이름을 붙인다.
  • 이름이 중복되는 변수 수정
    f를 제거하면서 지역 변수 expected와 이름이 같은 멤버 변수 expected가 생김
    => 서로 다른 의미이므로 이름을 명확하게 붙임
  • if 조건문을 부정문에서 긍정문으로 변경
    부정문은 긍정문보다 이해하기 약간 더 어려우므로, 조건문을 반전
  • 이상한 함수 이름 수정
    함수가 수행하는 기능을 완전히 담아내지 않거나 다르게 설명하고 있는 이름을 수정한다.
  • 역할 분리
    오류를 점검하고 문자열을 압축한 뒤 형식에 갖춰 반환하는 formatCompatedComparison에서 예상 문자열과 실제 문자열을 압축하는 작업과 형식을 맞추는 작업을 분리해 다른 함수로 만든다.