연재 완료/읽기 좋은 코드 (Book review)

8장 거대한 표현을 잘게 쪼개기

라이피 (Lypi) 2018. 6. 13. 15:42
반응형

PART Ⅱ. 루프와 논리를 단순화하기


8장. 거대한 표현을 잘게 쪼개기

  ★ 거대한 표현을 더 소화하기 쉬운 여러 조각으로 나눈다.


__01 설명 변수

  - 거대한 표현을 쪼개는 가장 쉬운 방법은 작은 하위표현을 담을 '추가 변수(extra variable)'을 만드는 것이다.
  - 추가 변수는 하위 표현의 의미를 설명하므로 '설명 변수(explaning variable)'라고도 한다.


__02 요약 변수

  - 커다란 코드의 덩어리를 짧은 이름으로 대체하여 더 쉽게 관리하고 파악하는 목적으로 만드는 변수를 '요약 변수(summary variable)'라고 한다.
  - 요약 변수를 통해 읽는 사람이 코드의 주된 개념을 더 쉽게 파악할 수 있게 도와줄 수 있다.


__03 드모르간의 법칙 사용하기

  - 불리언 표현은 '드모르간의 법칙(De Morgan's Laws)'을 이용하여 더 읽기 좋게 만들 수 있다.


__04 쇼트 서킷 논리 오용 말기

  - 쇼트 서킷 논리를 복잡한 연산에 사용하면 가독성을 해칠 수 있다.
  ★ '영리하게' 작성된 코드에 유의하라. 나중에 다른 사람이 읽으면 그런 코드가 종종 혼란을 초래한다.
  - 파이썬, JS, 루비 같은 언어는 or 연산자가 인수중 하나를 반환한다. 
    따라서 x = a || b|| c 라는 코드는 a,b,c 세 값 중에서 첫 번째 '참'값을 반환하는데 사용할 수 있다.


__05 예: 복잡한 논리와 씨름하기

  - 복잡한 논리를 해결하기 위한 우아한 해결책을 찾기 위해서는 창의력이 필요하다. 
  - '반대로' 생각해보는 것은 좋은 이러한 창의력 중 한가지일 것이다.


__06 거대한 구문 나누기

  - 거대한 구문에서도 동일한 부분을 요약 변수나 함수로 추출해서 구문의 앞부분에 놓아둘 수 있다. 
  - 이는 DRY-Don't Repeat Yourself의 원리이기도 하다.
  - 이렇게 하면 다음과 같은 장점이 있다.
  1. 타이핑 실수를 피할 수 있다.
  2. 코드를 한눈에 훑어보기 좋도록 코드의 길이를 조금이라도 줄여준다.
  3. 클래스명을 변경해야 할 때 한 곳만 바꾸면 된다.


__07 표현을 단순화하는 다른 창의적인 방법들

  - C++에서는 비슷한 표현을 매크로 함수로 정의해서 줄일수도 있다.
  - 매크로의 사용은 권장할 것이 아니지만 적절히 사용하면 코드 가독성을 높일 수 있다.

반응형