읽기 좋은 코드가 좋은 코드다 Ch 12

생각을 코드로 만들기

더스틴 보즈웰, 트레버 파우커

Alt text

느낌표 ! (인상 깊은 문장 | 문맥)

‘쉬운 말’로 자신의 생각을 지식이 부족한 사람에게 전달하는 기술은 매우 소중하다.

p.182

어려운 것을 ‘해결’할 수 있는 것과 어려운 것을 쉽게 ‘설명’할 수 있는 부분은 다른 부분이다. 좋은 코드는 어렵게 보이는 현상을 쉽게 푼 코드라고 생각한다. 쉽게라는 뜻은 이해가 쉬워야하기 때문에 읽기 좋은 코드를 의미할 것이다. 또한 읽기 좋다는 것은 좋은 변수, 함수명과 주석을 넘어 잘 구성된 객체를 포함할 수 있다. 필자는 쉽게 설명하기 위해서 의식적으로 주의하는 것은 ‘그것과 같이’, ‘그 코드는’ 등 이것, 저것을 사용하지 않으려 한다. 예를 들어 그 코드 -> 로그인에 사용되는 쿼리 처럼 전체적인 문장의 길이는 늘어나지만 대명사를 사용하지 않아 오해를 줄이려고 한다.

논리를 명확하게 설명하기

이전 코드

$is_admin = is_admin_request();
if ($document) {
    if (!$is_admin && ($document['username'] != $_SESSION['username'])) {
        return not_authorized();
    }
} else {
    if (!$is_admin) {
        return not_authorized();
    }
}

// 계속해서 페이지를 렌더링한다...

사용이 허가되는 방법은 두 경우다.

  1. 관리자다
  2. 만약 문서가 있다면 현재 문서를 소유하고 있다.

그렇지 않으면 허가되지 않는다.

이러한 묘사로 영감을 받은 새로운 코드는 다음과 같다.

p.183

개선 코드

$is_admin = is_admin_request();
if (is_admin_request()) {
    // 허가
} else if($document && ($document['username'] == $_SESSION['username'])) {
    // 허가
} else {
    return not_authorized();
}

// 계속해서 페이지를 렌더링한다...

Chapter 12 느낌

Chapter 12 에서는 기능을 설명하듯 적고 그것을 코드로 바꾸는 테크닉을 설명하고 있다. 좋은 예제가 있지만 양이 꽤 방대하여 옮기지 못한 것이 아쉽다.


읽기 좋은 코드가 좋은 코드다 Ch 11

한 번에 하나씩

읽기 좋은 코드가 좋은 코드다 Ch 13

코드 분량 줄이기

NCloud LB & SourcePipeline 구축하기
tech collection 서비스 성능 개선하기
Selenium 복권 구매 자동화 만들어보기
디자인 패턴
책 리뷰
블로그 챌린지