•
이 장에서는 화이트 스페이스, 정렬, 코드의 순서를 이용해 가독성을 향상시키는 방법에 대해 살펴볼 것이다.
•
특히 다음과 같이 세 가지 원리를 이용할 것이다.
◦
코드를 읽는 사람에게 친숙하고 일관성 있는 레이아웃을 사용하라.
◦
비슷한 코드는 서로 비슷해 보이게 만들어라.
◦
서로 연관된 코드는 하나의 블록으로 묶어라.
미학이 무슨 상관일까?
•
미학적으로 보기 좋은 코드가 사용하기 더 편리하기 때문이다.
•
우리는 대부분의 시간을 코드를 읽고 이해하는 데 사용하므로 이런 시간을 줄일수록 코드를 더 쉽게 사용할 수 있다.
일관성과 간결성을 위해서 줄 바꿈을 재정렬하기
•
동일 메소드의 매개변수가 다양하게 사용되는 경우, 각각의 줄 바꿈 지점을 다르게 한다면 이는 일관성을 깨는 행위다.
메소드를 활용하여 불규칙성을 정리하라
•
두 개 이상의 메소드가 존재하는 코드블록이 반복되는 형태라면 이를 메소드로 추출해내는 것을 고려하라.
◦
중복된 코드를 없애서 코드를 간결하게 할 수 있다.
◦
이름이나 에러 문자열같은 테스트의 중요 부분들이 한 눈에 보이게 된다.
◦
새로운 테스트 추가가 훨씬 쉬워진다.
•
코드를 보기에 좋게 만드는 작업은 구조의 개선도 이끌어낼 수 있다.
도움이 된다면 코드의 열을 맞춰라
•
반드시 열 정렬을 사용할 필요는 없다. 다만 열의 끝 선은 그 형태를 쉽게 훑어볼 수 있으므로 빠르게 문제점을 잡아낼 수 있게 해준다.
•
도움이 된다면 코드의 열을 맞추라는 것이다. 이점이 없다면 원래대로 놔두는 것이 좋다.
의미 있는 순서를 선택하고 일관성 있게 사용하라
•
순서가 존재하지 않는 코드라고 해도 일관성 있게 해주는 것이 좋다.
선언문을 블록으로 구성하라
•
인터페이스의 선언문을 서로 관련이 있는 것들끼리 묶어두고 줄 바꿈으로 분리하라.
•
코드를 구성하는 수는 늘어나지만 더 읽기 쉬워질 것이다. 정확히는 코드를 훑기 쉬워진다.
코드를 ‘문단’으로 쪼개라
•
글쓰기에서 문단을 나누는 이유는 다음과 같다.
◦
비슷한 생각은 묶어서 성격이 다른 것들과 구분한다.
◦
문단은 시각적 디딤돌 역할을 수행한다. 문단이 없다면 시각적으로 어떤 맥락을 읽고 있었는지 파악하기 힘들다.
◦
하나의 문단에서 다른 문단으로서의 전진을 촉진시킨다.
•
앞서 말한 블록으로 구성하라와 비슷하다. 유사한 성격, 서로 관련있는 객체나 파라미터를 사용하는 것들은 묶고 구분하라.
개인적인 스타일 대 일관성
•
개인적인 스타일을 유지하는 것보다 일관성을 지키는 것이 더 좋다.
⇒ 나는 일관성을 깨는 것만큼 나쁜 안티패턴은 없다고 생각한다.
요약
•
누구나 미학적으로 보기 좋은 코드를 읽고 싶어 한다. 자신의 코드를 일관성 있게 의미있는 방식으로 정렬하여 읽기 더 편하고 빠르게 만들 수 있다.
•
이 장에선 다음과 같은 내용들을 살펴봤다.
◦
여러 블록에 담긴 코드가 모두 비슷한 일을 수행하면 실루엣이 동일해 보이게 만들어라.
◦
코드 곳곳을 ‘열’로 만들어서 줄을 맞추면 코드를 훑기 쉬워진다.
◦
코드의 한 곳에서 A, B, C가 순서대로 언급되고 있으면 다른 곳에서도 A, B, C와 언급하게끔 순서의 일관성을 지켜라ㅣ.
◦
빈 줄을 이용하여 커다란 블록을 논리적인 문단으로 나누어라.