December 4, 2021

1장 이해하기 쉬운 코드 작성법

추상화 수준 정리하기

코드를 정리할 때는 높은 수준의 추상화 개념과 낮은 수준의 추상화 개념을 분리하도록 한다. 추상화 단계는 상하가 아니라 기능의 복잡도에 따라 여러 계층으로 분리한다.

결과적으로 추상화 수준을 일치시킨 코드는 훌륭한 책과 같다. 최고 수준부터 중간 수준의 처리가 책의 목차가 되고 최저 수준의 처리가 책의 본문 내용이 된다.

function 고수준() { 중수준1(); 중수준2(); } // 수준1의 목차
function 중수준1() { 저수준1(); 저수준2(); } // 수준2의 목자-1
function 저수준1() { }
function 저수준2() { }
function 중수준2() { 저수준3(); }
function 저수준3() { }

조건문을 단순화하자

if/else 블록의 순서

if/else를 사용하는 경우 부정이 아닌 긍정을 먼저 다루는 게 좋다. 첫번째 블록을 생각할 때 한번 부정한 값을 생각해야 함으로 긍정부터 다루는 게 이해하기 쉽다.

// Not Cool
if (a !== b) {
} else {
}

// Cool
if (a === b) {
} else {
}

드모르간의 법칙 사용하기

동일한 불리언 표현은 다음과 같이 두가지 방법으로 작성할 수 있다.

// Not Cool
if (!(fileExists && isProtected)) {
  return '아이고 파일을 읽을 수 없습니다.'
}

// Cool
if (!fileExists || !isProtected) {
  return '아이고 파일을 읽을 수 없습니다.'
}

코드를작게 만들자

😮 설명 변수

커다란 표현을 쪼개는 가장 쉬운 방법은 작은 하위 표현을 담을 추가 변수를 만드는 것이다. 하위표현의 의미를 설명하므로 설명 변수라고도 한다.