728x90
반응형
5. 리팩터링 카탈로그 보는법
- 책읽는 사용법이라 생략!
6. 기본적인 리팩터링
- 6.1 함수추출하기
- 코드가 무슨일은 하는지 파악하고, 독립된 함수로 추출하고 목적에 맞게 이름을 붙이자.
- 지역변수는 매개변수로 받도록 하자.
- 6.2 함수인라인하기
- 간접호출은 유용할 수 있지만 쓸데없는 간접 호출, 과하게 쓰이는 간접호출은 거슬리니 함수를 인라인하자.
- 6.3 변수 추출하기
- 표현식이 복잡해서 이해하기 어려울 때 짖역 변수를 활용해 표현식을 관리하기 쉽게 만들자.
- 6.4 변수 인라인하기
- 추출한 변수가 표현식과 다를 바 없을 때 변수를 인라인 하자.
- 6.5 함수 선언 바꾸기
- 더 좋은 함수 이름이 떠오른다면 바꾸자.
- 주석을 작성해보면 함수의 이름이 역으로 떠오를 수도 있다.
- 6.6 변수 캡슐화하기
- 데이터를 옮길(변경)때는 데이터로의 접근을 독점하는 함수(게터세터 등)를 만들어 캡슐화 해주는게 좋을때가 많다.
- 이런식으로 함수를 통해 데이터를 캡슐화 하면 데이터 변경이 어디서 일어나는지 쉽게 파악이 가능하고 데이터 변경 전 검증이나 변경 후 추가로직 등을 쉽게 끼워 넣을 수 있다.
- 6.7 변수 이름 바꾸기
- 6.8 매개변수 객체 만들기
- 데이터 항목 여러 개가 이 함수 저함수로 함께 몰려다니는 경우 데이터 구조를 하나로 모아주자.
- 6.9 여러 함수를 클래스로 묶기
- 클래스는 데이터와 함수를 하나의 공유환경으로 묶고 다른 프로그램 요소와 어우러 질 수 있도록 그중 일부를 외부에 제공한다.
- 여러 함수를 클래스로 묶으면 이 함수들이 공유하는 공통환경을 좀더 명확하게 할 수 있고, 각 함수에 전달되는 인수를 줄여서 객체 안에서의 함수 호출을 간결하게 만들 수 있다.
- 이 기법의 장점으로는 클라이언트가 객체의 핵심 데이터를 변경할 수 있을 뿐만 아니라 파생된 객체들을 일관하게 관리할 수 있다는 것이다.
- 6.10 여러 함수를 변환 함수로 묶기
- 데이터가 사용되는 곳 마다 같은 도출 로직이 반복되면 이 도출 작업을 한데로 모으고 이로 인해 검색과 갱신을 일관된 장소에서 처리할 수 있고 중복도 제거할 수 있다.
- 변환함수에 원본데이터를 매개변수로 전달해 필요한 정보를 모두 도출 하고 가공한 데이터를 새로운 레코드에 저장한 뒤 반환한다.
- 원본 데이터가 코드 안에서 갱신되면 클래스로 클래스 묶기로 처리한다.
- 6.11 단계 쪼개기
- 서로 다른 두 대상을 한꺼번에 다루는 코드가 있으면 각각 별개 모듈로 나누는 방법을 모색하자.
728x90
반응형
'python' 카테고리의 다른 글
리팩터링 7장 (0) | 2023.03.15 |
---|---|
리팩터링 2/3/4장. (0) | 2023.02.12 |
리펙터링 1장. (0) | 2023.02.07 |
python matplotlib.pyplot 한글 깨짐 해결하기. (3) | 2020.05.24 |
scatter plot 그리기 (0) | 2020.05.14 |
댓글