CHAPTER 8 계층형 설계 I
소프트웨어 설계란 무엇입니까?
- 소프트 웨어 설계 : 코드를 만들고, 테스트하고, 유지보수하기 쉬운 프로그래밍 방법을 선택하기 위해 미적 감각을 사용하는 것
계층형 설계란 무엇인가요?
- 계층형 설계는 소프트웨어를 계층으로 구성하는 기술
- 각 계층에 있는 함수는 바로 아래 계층에 있는 함수를 이용해 정의
설계 감각을 키우기
- 전문가의 저주
- 전문가는 자신의 지식을 다른 사람에게 전달하기 어렵다.
계층형 설계 패턴
- 패턴 1: 직접 구현
- 함수 시그니처가 나타내고 있는 문제를 함수 본문에서 적절한 구체화 수준에서 해결해야 한다
- 패턴 2: 추상화의 벽
- 중요한 세부 구현을 감추고 인터페이스로 제공한다
- 패턴 3: 작은 인터페이스
- 중요한 인터페이스는 작고 강력한 동작으로 구성하는 것이 좋다
- 패턴 4: 편리한 계층
- 그냥 좋아서 계층을 추가하면 안됨 코드와 그 코드가 속한 추상화 계층은 작업할 때 편리해야 한다
패턴 1: 직접 구현
같은 계층에 있는 함수는 같은 목적을 가져야 한다
3단계 줌 레벨
- 전역 줌 레벨
- 전역 줌 레벨로 그래프 전체 중 필요한 부분을 살펴볼 수 있다
- 함수가 가르키는 화살표를 계층간에 비교할 수 있다
- 계층 줌 레벨
- 한계층과 연결된 바로 아래 계층을 볼수 있는 줌레벨
- 함수 하나가 가진 화살표를 비교 할수 있다
- 함수 줌 레벨
- 함수 하나와 바로 아래 연결된 함수들을 볼 수 있다
직접 구현 패턴 리뷰
- 직접 구현한 코드는 한 단계의 구체화 수준에 관한 문제만 해결합니다
- 계층형 설계는 특정 구체화 단계에 집중할 수 있게 도와줍니다
- 호출 그래프는 구체화 단계에 대한 풍부한 단서를 보여준다
- 함수를 추출하면 더 일반적인 함수로 만들수 있다
- 일반적인 함수가 많을수록 재사용하기 좋다
- 복잡성을 감추지 않는다