Intention-revealing interface 개발자가 컴포넌트를 사용하기 위해 컴포넌트의 구현 세부사항을 고려해야 한다면 캡슐화의 가치가 사라진다. 도메인 내의 개념을 클래스나 메서드 형태로 명확하게 모델링하여 인터페이스로 전달해야 한다. 주의할 점은 수행 방법에 관해서는 언급하지 말고 오직 결과와 목적만을 표현하도록 클래스와 연산의 이름을 부여해야 한다. Side-effect-free function CQRS가 중요하다. comand-query responsibility segregation. 즉 명령과 질의는 엄격하게 분리되어야 한다는 것을 의미한다. 다수의 규칙에 따라 상호작용하거나 여러가지 계산이 조합되면 극도로 예측하기가 힘들어진다. 이 의미는 연산을 호출하는 개발자가 연산 자체의 구현..