기이한 이름
- 마땅한 변수명이 떠오르지 않는다면 코드에 여러 기능이 있기 때문은 아닌지 의심하기.
- 동의어 (display, show / render, paint, print)를 통일하고 풍부한 어휘력은 숨기기..
함수 선언 바꾸기
, 변수 이름 바꾸기
, 필드 이름 바꾸기
중복 코드
- 똑같은 코드 구조가 여러 곳에서 반복된다면 하나로 통합하자.
함수 추출하기
, 문장 슬라이드하기
, 메서드 올리기
긴 함수
- 주석을 달아야 할 만한 부분은 무조건 함수로 만든다.
- 무엇을 하는지 코드가 설명해주지 못한다면 함수로 만들자.
함수 추출하기
, 임시 변수를 질의 함수로 바꾸기
, 매개변수 객체 만들기
, 객체 통째로 넘기기
긴 매개변수 목록
- 매개변수 목록이 길어지면 그 자체로 이해하기 어렵다.
매개변수를 질의 함수로 바꾸기
, 객체 통째로 넘기기
, 매개변수 객체 만들기
, 플래그 인수 제거하기
, 여러 함수를 클래스로 묶기
전역 데이터
- 전역 데이터는 코드베이스 어디에서든 건드릴 수 있고 값을 누가 바꿨는지 찾아낼 메커니즘이 없다.
변수 캡슐화하기
가변 데이터
- 데이터 변경으로 인한 버그때문에 함수형 프로그래밍에서는 데이터는 절대 변하지 않고, 데이터를 변경하려면 반드시 변경하려는 값에 해당하는 복사본을 만들어서 반환하고 있다.