생각을 코드로 만들기
더스틴 보즈웰, 트레버 파우커
느낌표 ! (인상 깊은 문장 | 문맥)
‘쉬운 말’로 자신의 생각을 지식이 부족한 사람에게 전달하는 기술은 매우 소중하다.
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();
}
}
// 계속해서 페이지를 렌더링한다...
사용이 허가되는 방법은 두 경우다.
- 관리자다
- 만약 문서가 있다면 현재 문서를 소유하고 있다.
그렇지 않으면 허가되지 않는다.
이러한 묘사로 영감을 받은 새로운 코드는 다음과 같다.
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 에서는 기능을 설명하듯 적고 그것을 코드로 바꾸는 테크닉을 설명하고 있다. 좋은 예제가 있지만 양이 꽤 방대하여 옮기지 못한 것이 아쉽다.