더북(TheBook)

코드를 읽을 때는 일반적으로 긍정 표현을 이해하기가 더 쉽습니다. 부정 표현은 간접적인 행동 계층을 하나 더 추가합니다. 단순히 “X가 해당된다”가 아니라 “X가 해당되지 않는다”라는 표현을 추가로 이해해야 하죠.

추가 표현은 대부분 불필요합니다. 사소한 변경처럼 보이지만 매우 작은 단순화가 모여 (실제 코드에서 볼 수 있는) 더 복잡한 표현식에 도움을 줍니다.

누구나 부정이 없는 표현을 좋아한다는 사실을 꼭 기억하세요.

이제 간소화한 코드를 봅시다.

class Laboratory {

    Microscope microscope;

    Result analyze(Sample sample) {
        if (microscope.isOrganic(sample)) {
            return analyzeOrganic(sample);
        } else {
            return Result.INORGANIC;
        }
    }

    private Result analyzeOrganic(Sample sample) {
        if (microscope.isHumanoid(sample)) {
            return Result.HUMANOID;
        } else {
            return Result.ALIEN;
        }
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.