Part 1 코드 정리법
5 min read
- 같은 문제라도 시대와 사람에 따라 다른 모습으로 해결된다 자연스러운 일이지만 이것이 코드를 읽기 어렵게 만들기도 한다
- 코드를 읽는 사람 입장에선 일관성이 중요하다
- 새로운 인터페이스를 만들어 기존 루틴을 부르는 방식으로 코드를 정리하자
- 거꾸로 코딩하기 : 루틴의 마지막 줄부터 시작해서 거꾸로 코드를 짜나가는 방식
- 테스트 우선 코딩
- 도우미 설계
- 코드를 읽기 좋은 순서로 다시 정렬하면 그 순서대로 코드를 만날수 있다
- 코드를 읽는 사람 입장에서 코드를 작성하자
- 코드를 읽다가 변경해야 할 동작을 찾았더니 여러 곳에 흩어져 있는 코드를 함께 바꿔야 한다면 그 코드는 응집도가 낮다
- 코드의 순서를 바꿔서 변경할 요소들을 가까이 두면된다
- 결합도가 있으면 서로 옆에 두자
- 두 파일에 결합도가 있으면 같은 디렉토리에 넣자
- 응집도를 높이는 순서로 정리하면 코드를 더 쉽게 변경할 수 있다
- 변수 선언가 초기화 위치는 같이 붙어 있는게 좋다
- 표현의 의도가 드러나도록 변수명을 지어야 된다
- 코드 정리 커밋과 동작 변경에 대한 커밋은 분리 해야 된다
- 같은 리터럴 상수가 두 곳에서 나타날때는 다른 의미로 쓰이는지 확인
- 매개변수를 암묵적으로 사용하지 말고 명시적으로 사용하자
- 명시적으로 하면 읽기 테스트 분석이 쉬워진다
- 두 부분사이에 빈 줄을 넣어 분리
- 제대로 된 설계는 설계 유연성을 확보 잘못하면 소프트웨어 설계의 소용돌이에 빠질 수 있다
- 시간적 결합을 표현하는 경우 도우미 함수를 추출하자
- 필요한 만큼의 코드를 하나의 더미 처럼 느껴질 때 까지 흩어진 코드를 모으세요
- 길고 반복되는 인자 목록
- 반복되는 코드 그 중에서도 반복되는 조건문
- 도우미에 대한 부적절한 이름
- 공유되어 변경에 노출된 데이터 구조
- 아 이건 이렇게 돌아가는 거구나 라는 생각이 드는 순간을 아시죠? 그 순간이 소중한 순간입니다 기록하세요
- 코드의 결합을 발견했다면 그 즉시 해당 위치에 주석을 달아야 한다
- 코드만으로 내용을 모두 이해할 수 있다면 주석은 삭제 하세요