클린 코드 - 5장 형식 맞추기
CleanCode ·클린 코드 5장 형식 맞추기를 정리합니다!
형식을 맞추는 목적
- 코드 형식은 의사소통의 일환, 전문 개발자의 일차적 의무
- 오늘 구현한 기능이 다음 버전에서 바뀔 확률이 아주 높지만,
오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미침
원활한 소통을 장려하는 코드 형식
- 적절한 행 길이 유지
- 500줄을 넘지 않고 대부분 200줄 정도인 파일로 커다란 시스템 구축 가능
- 일반적으로 큰 파일보다 작은 파일이 이해하기 쉬움
- 신문기사처럼 작성하라
- 이름은 간단하면서도 설명이 가능하게
- 이름만 보고도 올바른 모듈을 살펴보는 것인지 판단할 수 있게
- 소스 파일 첫 부분은 고차원 개념과 알고리즘을 설명
- 아래로 내려갈수록 의도를 세세하게 묘사
- 마지막에는 가장 저차원 함수와 세부 내역
- 이름은 간단하면서도 설명이 가능하게
- 개념은 빈 행으로 분리하라
- 각 행은 수식이나 절을 나타내고, 일련의 행 묶음은 완결된 생각 하나를 표현
- 생각 사이는 빈 행을 넣어 분리해야 마땅
- 빈 행은 새로운 개념을 시작한다는 시각적 단서, 가독성 up
- 세로 밀집도
- 줄바꿈이 개념을 분리한다면 세로 밀집도는 연관성을 의미
- 서로 밀접한 코드 행은 세로 가까이 놓여야 한다는 뜻, 가독성 up
- 줄바꿈이 개념을 분리한다면 세로 밀집도는 연관성을 의미
- 수직 거리, 서로 밀접한 개념은 세로로 가까이 둬라
- 두 개념이 서로 다른 파일에 속한다면 규칙이 통하지 않지만,
타당한 근거가 없다면 서로 밀접한 개념은 한 파일에 속해야 함 - 연관성 깊은 개념이 멀어지면 소스 파일과 클래스를 여기저기 찾게 됨
- 두 개념이 서로 다른 파일에 속한다면 규칙이 통하지 않지만,
- 변수 선언은 사용하는 위치에 최대한 가까이에
- 짧은 함수의 지역 변수는 각 함수 맨 처음에 선언
- 루프를 제어하는 변수는 루프 문 내부에 선언
- 인스턴스 변수 선언은 클래스 맨 처음에
- 잘 설계한 클래스는 클래스의 많은 메서드가 인스턴스 변수를 사용하기에
- 변수 간 세로로 거리를 두지 않음
- 종속 함수는 호출하는 함수와 세로로 가까이에 배치
- 가능하다면 호출하는 함수를 호출되는 함수보다 먼저 배치
- 그러면 프로그램이 자연스럽게 읽힘
- 개념적인 친화도가 높을수록 코드를 가까이 배치
- 가로 형식 맞추기
- 프로그래머는 명백하게 짧은 행을 선호하고 요즘 모니터가 크므로 길어도 좋음
- 120자 제한 정도가 좋음
- 가로 공백과 밀집도
- 가로로는 공백을 사용해 밀접한 개념과 느슨한 개념을 표현
- 예를 들어)
- 함수 이름과 인수 사이에 밀접함을 표현하기 위해 공백 X
- 연산자 우선순위를 강조하기 위해 항 사이에 공백 사용
- 가로 정렬 하지 않기
- 코드의 엉뚱한 부분을 강조해 진짜 의도가 가려짐
- 들여쓰기
- 프로그래머는 들여쓰기 체계에 크게 의존하고,
들여쓰기 없이 인간이 코드 읽기란 거의 불가능
- 프로그래머는 들여쓰기 체계에 크게 의존하고,
- 팀 규칙
- 팀은 한 가지 규칙에 합의하고 모든 팀원은 그 규칙을 따라야 함
- 온갖 스타일이 뒤섞어 소스 코드를 필요 이상으로 복잡하게 만드는 실수는 피해야 함