-
리팩토링Python study/코딩스타일 2021. 12. 3. 14:47
기본적인 리팩토링
1. 함수 추출하기
- 목적과 구현을 분리한다.
- 코드를 보았을때 "어떻게" 보다 "무엇"을 하는지 한 번에 알수 있도록 함수의 이름을 짓자
- 하나의 함수는 한가지 목적을 가지고 한가지 일만을 해야한다.
- 즉 한가지 일만 할수 있도록 함수를 쪼개고 추출하자
Before
after
- 추가 설명과 팁
- 단 한 줄짜리 함수라도 상관없다. 무엇을 하는지 명확하게 드러나야 한다.
- 함수의 길이는 한 눈에 들어와야 한다.
- 두 번 이상 사용될 코드는 함수로 만들자
- 함수 이름을 당장 짓기가 어려우면, 주석으로 먼저 무슨 일을 하는지 적어두자.
- 반면, 코드 자체로 무엇을 하는지 명확히 보인다면, 굳이 추출하지 않는다.
2. 변수 추출하기
- 복잡한 표현식은 과정을 나누어 표현한다.
- 각 과정을 잘 드러내는 임시 변수를 사용하자.
before
after
- 추가 설명과 팁
- 변수 이름을 문맥에 맞게 잘 짓자.
- 문맥은 함수 내부, 클래그 내부, 전역 등에 따라 달라지므로 어떻게 사용될지 잘 생각하고 이름을 지어야 한다.
- 반면, 추출하지 않아도 그 자체로 명확히 보인다면 추출하지 말자. (오히려 더 깔끔하게 압축하자)
3. 매개변수 객체 만들기
- 몰려다니는 데이터 무리를 데이터 구조 하나로 모아주자
- 데이터 구조로 묶으면 데이터 사이의 관계가 아주 명확해진다.
before
after
- 추가 설명과 팁
- 객체를 만든다는 것은 어떤 개념을 추상화 하는 것이다.
- 변수들을 하나의 객체로 묶음으로써 하나의 개념을 만들어내고, 이는 더 나은 디자인을 만들어 낼 수 있다.
4. 여러 함수를 클래스로 묶기
- 클래스로 묶으면, 함수들이 공유하는 공통환경과 목적을 명확히 표현할 수 있따.
- 또한 함수 매개변수를 줄여서, 호출을 더 간결하게 만들 수 있다.
- 원하는 함수를 클래스 단위로 빠르게 찾을 수 있다.
before
after
'Python study > 코딩스타일' 카테고리의 다른 글
리팩토링 - 캡슐화 (0) 2021.12.03 코드에서 나는 악취 (0) 2021.12.03