본문 바로가기
python

리팩터링 2탄 5/6장

by 볼록티 2023. 2. 22.
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

댓글