뚜껑을 열었을 때 코드가 어수선하지 않고 일관적이며 질서 정연하면 좋겠다.
프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야 한다. 코드 형식을 맞추기 위한 간단한 규칙을 정하고 그 규칙을 착실히 따라야 한다.
오늘 구현한 기능이 다음 버전에서 바뀔 확률은 아주 높다.
그런데 맨 처음 잡아놓은 구현스타일과 가독성 수전은 유지보수 용이성과 확장성에 계속 영향을 미친다. 코드 형식은 중요하다!
대부분은 세로 길이가 200줄 정도인 파일로도 커다란 시스템을 구축할 수 있다.
아주 좋은 신문 기사를 읽을때 독자는 위에서 아래로 기사를 읽는다. 최상단에는 기사를 몇 마디로 요약하는 표제가 나온다.
소스 코드도 마찬가지다. 소스 파일 첫 부분은 고차원 개념과 알고리즘을 설명하고, 아래로 내려갈수록 의도를 세세하게 묘사한다.
빈 행은 새로운 개념을 시작한다는 시각적 단서다. 생각 사이에는 빈 행을 넣어 분리해라.
줄바꿈이 개념을 분리한다면 세로 밀집도는 연관성을 의미한다. 즉, 서로 밀집한 코드 행은 세로로 가까이 놓여야 한다.
서로 밀접한 개념은 세로로 가까이 둬야 한다.
변수는 사용하는 위치에 최대한 가까이 선언한다.
반면, 인스턴스 변수는 클래스 맨 처음에 선언한다.
한 함수가 다른 함수를 호출한다면 두 함수는 세로로 가까이 배치한다.
가능하다면 호출하는 함수를 호출되는 함수보다 먼저 배치한다. 그러면 소스 코드 모듈이 고차원에서 저차원 으로 자연스럽게 내려간다.
120자 정도에 달해도 괜찮지만, 그 이상은 주의부족이다.
공백을 사용해 밀접한 개념과 느슨한 개념을 표현한다.
가로 정렬을 하게 되면 이름이 강조되어 진짜 의도가 가려질 수 있다. 가로 정렬을 할 필요는 없다.
범위로 이뤄친 계층을 표현하기 위해 코드를 들여쓴다.
간단한 if문, 짧은 while문이나 빈 while문 등에도 들여쓰기를 꼭 적용하자.
클린 코드: 애자일 소프트웨어 장인 정신 - 로버트 마틴 지음