1. 이해하기 힘든 이름
2. 함수 선언 변경하기(Change Function Declaration)
3. 변수 이름 바꾸기(Rename Variable == Local Variable)
4. 필드 이름 바꾸기(Rename Field == Global Variable)
1. 중복 코드(Duplicated Code)
2. 함수 추출하기(Extract Function) == option+command+m
메소드안에 의도와 구현이 같이 있는 경우가 있는데
의도의 메소드와 구현의 메소드로 추출하기
3. 코드 정리하기(Slide Statements) == option+shift+화살표
메소드 안에 변수를 사용할 때 상단에 미리 ‘모두 정의’를 하는 게 아니라
사용하는 코드 바로 위에 변수를 선언해 처리하는 게 좋다.
하나의 블록 단위로 정의해야 함수 추출하기가 용이함.
4. 메소드 올리기(Pull Up Method) == Pull members Up, 자주 사용하는 경우는 아님
상위 클래스와 하위 클래스(2)가 있는데, 파라미터가 있고 없는 중복코드가 존재.
이를 해결하는 방법으로 파라미터가 없는 중복코드를 파라미터가 값이 있게 맞춘 후
하위 클래스를 상위 클래스로 “Pull Members Up”을 한다.
기존 상위 클래스와 하위 클래스(2) 상황에서 상위 클래스와 하위 클래스(1)로 바뀜.
상위 클래스로 올린 하위 클래스의 메소드를 상속받을 수 있는 상황으로 변했기에
super.printUsernames()로 리팩토링 처리함.
1. 긴 함수 개념 정의
2. 임시 변수를 질의 함수로 바꾸기
3. 매개변수 객체 만들기
4. 필드 변수로 빼서 하는 방법(option+command+F)
5**. 객체 통째로 넘기기**
6**. 함수를 명령으로 바꾸기**