////
Search
Duplicate
🛷

4. 미학

이 장에서는 화이트 스페이스, 정렬, 코드의 순서를 이용해 가독성을 향상시키는 방법에 대해 살펴볼 것이다.
특히 다음과 같이 세 가지 원리를 이용할 것이다.
코드를 읽는 사람에게 친숙하고 일관성 있는 레이아웃을 사용하라.
비슷한 코드는 서로 비슷해 보이게 만들어라.
서로 연관된 코드는 하나의 블록으로 묶어라.

미학이 무슨 상관일까?

미학적으로 보기 좋은 코드가 사용하기 더 편리하기 때문이다.
우리는 대부분의 시간을 코드를 읽고 이해하는 데 사용하므로 이런 시간을 줄일수록 코드를 더 쉽게 사용할 수 있다.

일관성과 간결성을 위해서 줄 바꿈을 재정렬하기

동일 메소드의 매개변수가 다양하게 사용되는 경우, 각각의 줄 바꿈 지점을 다르게 한다면 이는 일관성을 깨는 행위다.

메소드를 활용하여 불규칙성을 정리하라

두 개 이상의 메소드가 존재하는 코드블록이 반복되는 형태라면 이를 메소드로 추출해내는 것을 고려하라.
중복된 코드를 없애서 코드를 간결하게 할 수 있다.
이름이나 에러 문자열같은 테스트의 중요 부분들이 한 눈에 보이게 된다.
새로운 테스트 추가가 훨씬 쉬워진다.
코드를 보기에 좋게 만드는 작업은 구조의 개선도 이끌어낼 수 있다.

도움이 된다면 코드의 열을 맞춰라

반드시 열 정렬을 사용할 필요는 없다. 다만 열의 끝 선은 그 형태를 쉽게 훑어볼 수 있으므로 빠르게 문제점을 잡아낼 수 있게 해준다.
도움이 된다면 코드의 열을 맞추라는 것이다. 이점이 없다면 원래대로 놔두는 것이 좋다.

의미 있는 순서를 선택하고 일관성 있게 사용하라

순서가 존재하지 않는 코드라고 해도 일관성 있게 해주는 것이 좋다.

선언문을 블록으로 구성하라

인터페이스의 선언문을 서로 관련이 있는 것들끼리 묶어두고 줄 바꿈으로 분리하라.
코드를 구성하는 수는 늘어나지만 더 읽기 쉬워질 것이다. 정확히는 코드를 훑기 쉬워진다.

코드를 ‘문단’으로 쪼개라

글쓰기에서 문단을 나누는 이유는 다음과 같다.
비슷한 생각은 묶어서 성격이 다른 것들과 구분한다.
문단은 시각적 디딤돌 역할을 수행한다. 문단이 없다면 시각적으로 어떤 맥락을 읽고 있었는지 파악하기 힘들다.
하나의 문단에서 다른 문단으로서의 전진을 촉진시킨다.
앞서 말한 블록으로 구성하라와 비슷하다. 유사한 성격, 서로 관련있는 객체나 파라미터를 사용하는 것들은 묶고 구분하라.

개인적인 스타일 대 일관성

개인적인 스타일을 유지하는 것보다 일관성을 지키는 것이 더 좋다.
⇒ 나는 일관성을 깨는 것만큼 나쁜 안티패턴은 없다고 생각한다.

요약

누구나 미학적으로 보기 좋은 코드를 읽고 싶어 한다. 자신의 코드를 일관성 있게 의미있는 방식으로 정렬하여 읽기 더 편하고 빠르게 만들 수 있다.
이 장에선 다음과 같은 내용들을 살펴봤다.
여러 블록에 담긴 코드가 모두 비슷한 일을 수행하면 실루엣이 동일해 보이게 만들어라.
코드 곳곳을 ‘열’로 만들어서 줄을 맞추면 코드를 훑기 쉬워진다.
코드의 한 곳에서 A, B, C가 순서대로 언급되고 있으면 다른 곳에서도 A, B, C와 언급하게끔 순서의 일관성을 지켜라ㅣ.
빈 줄을 이용하여 커다란 블록을 논리적인 문단으로 나누어라.