: 형식을 깔끔하게 맞춰 코드를 짜야한다.
: 코드 형식을 맞추기 위한 팀 간 규칙을 정하고 지키자
형식을 맞추는 이유
: 오늘 구현한 코드의 가독성은 앞으로 개선되거나 바꿔야할 코드의 품질에 영향을 주기 때문이다.
: 테세우스의 배처럼 기존의 내 코드가 사라지더라도 일관적인 구현 스타일과 가독성 수준은 계속 영향을 미친다.
적절한 행 길이를 유지하라
: 큰 파일보다 작고 오밀조밀한 파일들이 이해하기 쉽다.
: JUnit도 그 거대한 시스템을 평균 65줄의 길이를 가진 파일들로 구현했다.
신문기사처럼 작성하라
: 코드란 상세한 요구사항을 명세서로 적는 것이다.
: 신문기사처럼 정보를 잘 전달하고자 큰 개념부터 작은 개념까지 쪼개서 전달해라.
: 아래로 내려갈수록 의도를 세세하게 묘사하라.
개념은 빈 행으로 분리하라
: 일련의 행 묶음은 생각의 한 단위여야 한다.
: 의미없는 개행쓰지 말고 의미를 담아서 분리하자.
세로 밀집도
: 세로 밀집도는 연관성을 의미한다. 즉 서로 밀접한 연관을 가진 코드 행은 세로로 가까이 놓아야 한다.
수직 거리
: 서로 밀접한 개념은 같은 클래스, 파일에 속하는 것이 좋다.
: 같은 파일에 속할 정도로 밀접한 두 개념은 세로 거리로 그 연관성을 표시하자.
•
변수 선언
: 변수는 사용되는 위치에 최대한 가까이 위치하자,
: 지역 변수는 각 함수 맨 처음에 선언한다.
: 반복문 제어 변수는 반복문 내부에 선언하자.
•
인스턴스 변수
: 일반적으로 클래스 맨 처음에 선언하자.
•
종속 함수
: 다른 함수에서 사용되어지는 함수는 해당 함수 다음에 위치시키자.
•
개념적 유사성
: 비슷한 일을 하는 친구들은 모아두자.
가로 형식 맞추기
: 행 길이는 짧은 것이 바람직하다. 80자까지는 아니어도 100 ~ 120자는 유지하자.
가로 공백과 밀집도
: 가로로는 공백을 사용해 밀접한 개념과 느슨한 개념을 표현하자.
private void measureLine(String line) {
lineCount++;
// 대입 연산자가 강조되어 왼쪽/오른쪽 요소가 나뉨
int lineSize = line.length();
totalChars += lineSize;
// 함수와 인수는 밀접하기에 공백을 넣지 않는다.
lineWidthHistogram.addLine(lineSize, lineCount);
recordWidestLine(lineSize);
}
JavaScript
복사
가로 정렬
: 가로 정렬은.. 쓰지 말자..
들여쓰기
: 글쓰기에 위계가 존재하듯, 코드에서도 그 위계를 들여쓰기로 나타내자.