Chapter 5 - Formatting
in Booknotes / Clean Code
코드는 사라져도 개발자의 스타일과 규율은 사라지지 않는다
형식을 맞추는 목적
- ‘돌아가는 코드’에 집착하지 않기
- 오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다
- 시간이 지나 코드가 바뀌어도 맨 처음 잡아놓은 구현 스타일 + 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미침
적절한 행 길이를 유지하라
- 일반적으로 큰 파일보다 작은 파일이 이해하기 쉽기 때문에 각 파일은 200줄 정도의 코드로 유지한다 (Java기준)
- 신문처럼 작성하라: 이름을 잘 짓고, 고차원 알고리즘을 설명하고 내려갈수록 의도를 세세하게 명세
- 줄바꿈: 완결된 생각 사이는 빈 행을 넣어 분리 (import, 함수 사이사이 …etc)
- 세로 밀집도: 연관성 의미 (가까울수록 같이 넣기)
- 수직 거리: 서로 밀접한 개념은 세로로 가까이 두기 (최대한 같은 파일에)
- 변수 선언: 사용하는 위치에 최대한 가까이 선언
- 루프 제어 변수 (
i
)는 loop 문 내부에 선언, 또는 바로 직전에 선언 - 인스턴스 변수 : 클래스 맨 처음에 선언 (잘 알려진 (C++: 맨 아래)에 모은다는게 중요!)
- 루프 제어 변수 (
- 종속 함수: 종속된 함수는 부모함수 가까이 (최대한 consecutive하게) 선언
- 개념적 유사성: 친화도가 높을수록 코드를 가까이 배치 (종속, 비슷한 동작 수행, 명명법 비슷한)
가로 형식 맞추기
- 예전에는 오른쪽으로 스크롤할 필요가 없게 코드를 짰다. (현재는 스크린 크기, 글꼴 크기 등으로 다양해 이럴 필요X)
- 행 길이는 짧을수록 좋다!
- 가로 공백과 밀집도: 한 개념이면 공백X, 다른 개념이면 공백으로 분리 (하지만 prettier같이 자동으로 없애거나 추가해주기도 함)
- 들여쓰기로 범위를 시각적으료 표현한다
- 들여쓰기 무시하지 않기 (짧은
if
,while
, 짧은 함수 등)
팀 규칙
- 일관성 있는 Team Convention 중요!