리팩터링 2판 6, 10 정리

이종호·2022년 6월 4일
0

Refactoring

목록 보기
1/4

6장

1. 함수추출하기

코드를 언제 함수로 묶을 것인가?
코드가 무슨일을 하는지 모르겠을 때, 이름을 지어준다.

3. 변수 추출하기

표현식이 무슨 값을 나타내는지 복잡할 때, 지역변수로 만든다.

Q. 변수로 만들어야 할 때, 함수로 만들어야 할 때 차이가 뭘까?
책에서 넓은 의미로 쓰일 떄는 함수로 추출해야한다고 하는데 동의 되지 않는다.
함수는 여러 행위를 하고
변수는 값이다. 데이터이다.
함수도 데이터가 될 수 있지만, 그것을 처리하는 과정이 더 중요하지 않을까 싶다.

5. 함수 선언 바꾸기

이름과 매개변수를 바꿀 때 사용
함수가 외부 세계와 어우러지는 방식을 재정의

매개변수를 올바르게 선택하기란 정답이 없다.
상황에 따라 더 나은 순간이 존재할 뿐

6. 변수 캡슐화하기

함수와 데이터의 차이
데이터(변수)는 직접 데이터를 접근하고 있고,
함수는 링크드리스트 형식으로 데이터를 접근할 수 있다.
따라서 값을 수정할 때, ...

코드스피츠에 나오는 더블 디스패치의 개념이 아닐까 생각도 해봤지만,
이 원리는 변수에서도 동일하게 적용할 수 있지 않을까?

변수는 그냥 값이고
함수는 그냥 함수이다.
함수의 호출을 했을 때, 리턴문이 있다면 해당 리턴문이 값으로 된다.
함수는 함수고, 변수는 값이다.
함수는 호출을 해야한다.

레코드 캡슐화는 클래스화 하기이다.

8. 매개변수 객체 만들기

이 리팩터링의 진정한 힘은 코드를 더 근본적으로 바꿔준다는 데 있다.
클래스를 만들기 위한 밑 작업
데이터 뭉치는 클래스로 만들기 적합하다. 이견이 없다.

매개변수에서 데이터 뭉치를 발견하기 쉽다는 사실이 놀라운 것 같다.

9. 여러 함수를 클래스로 묶기

장점
데이터와 함수를 하나의 공유환경으로 묶어, 응집도를 높이는 구조를 가질 수 있게 하고
필요한 부분만 노출시킴으로 데이터의 안정성을 높이며
무엇을 노출시킬지 명시함으로써 객체의 쓰임(의미, 왜)을 코드에 반영한다.

10장

4. 조건부 로직을 다형성으로 바꾸기

보면 볼 수록 멋진거 같고 내 코드에 적용해보고 싶기도하고,
클래스 문법에 익숙해질 수 있는 시간을 주는것 같은 느낌이다

profile
코딩은 해봐야 아는 것

0개의 댓글