본문 바로가기

java/java 리팩토링11

리팩토링이란 리펙토링 외부에서 보는 프로그램의 기능은 변하지 않고 프로그램 내부 구조를 개선하는 것 프로그램의 동작이 변하지 않음을 증명하기 위해 유닛테스트가 필요하다 테스트 -> 리펙토링 -> 테스트 디버깅과 기능 추가는 리펙토링이 아니다. 리펙토링의 여러 방법 메서드나 클래스가 겹치는 경우 -> 분리 메서드나 클래스의 기능이 너무 많고 긴 경우 -> 메서드와 클래스를 따로 추출한다. 변수, 메서드, 필드명, 패키지명등이 안맞는 경우 -> 이름을 이해하기 쉽게 변경 public으로 선언된 것이 너무 많은 경우 -> 인스턴스 이름을 숨기고 싶을때는 팩토리 메서드 등의 방법 활용 switch문이나 if-else if 문의 남용으로 여러 분류조건이 반복되는 경우 클래스화 검토 -> 전략패턴이나 상태 패턴으로 변경 가능 .. 2023. 2. 6.
리팩토링 대상 발견하는 법, 조건 정리 1. 코드에 반복적인 if - else 나 switch - case 조건이 있다면 클래스로 분리한다. 2023. 2. 3.
1. 의미 있는 이름 짓기 변수의 이름, 클래스의 이름, 함수의 이름, 모듈의 이름 등 모두 어떤 역할을 하는지 직관적으로 알 수 있게 지어야 한다. 함수 선언 변경하기 ( Change Function Declaration ) 변수 이름 바꾸기 (Rename Variable) 필드 이름 바꾸기 (Rename Field) 함수 선언 변경하기 좋은 이름을 찾는 방법은 함수에 주석을 작성한 다음, 주석을 함수 이름으로 만들어 보면서 찾는다. 함수의 매개변수는 함수 내부의 문맥을 결정한다. 의존성을 결정한다. 변수 이름 바꾸기 더 많이 사용되는 변수일수록 그 이름이 더 중요하다 람다식에서 사용하는 변수 vs 함수의 매개변수 람다식은 범위가 아주 좁기 때문에 함수 매개변수보다 상대적으로 간략히 적어도 됨, 필드 이름 바꾸기 Recoird .. 2022. 4. 1.