[역구동 디자인] 양파 구조의 폴더 구조
의 목적
DDD는 도메인네임층이 핵심이기 때문에 양파 아키텍처 등 아키텍처 중심의 아키텍처를 연상하기 쉽다.또한 응용을 통해 이 구조의 폴더 구조를 고려하여 이 구조의 실현을 쉽게 실현할 수 있다.따라서 본고는 폴더 구조를 제시했다.
폴더 구조 ┳ app ┳ presentation ━━┳ REST API
┃ ┃ ┗ SUB
┃ ┠ infrastructure ┳ repository(実装: domain.repository)
┃ ┃ ┗ PUB (実装: application.PUB)
┃ ┠ application ━━ ┳ usecase1
┃ ┃ ┠ usecase2
┃ ┃ ┗ PUB(インターフェース)
┃ ┗ domain ━━━━━━━━┳ models ┳ root-entity1 ┳ child-value-object1
┃ ┠ ┃ ┗ child-value-object2
┃ ┠ ┗ root-entity2 ┳ child-value-object1
┃ ┠ ┗ child-value-object2
┃ ┠ services
┃ ┠ factory
┃ ┗ repository(インターフェース)
┗ tests
고려 사항
폴더별로 레이어 구분
이 그림에 따라presentation, infrastructure, 응용 프로그램,domain을 통해 폴더를 구분합니다.폴더 단위로 층을 나누면 내부 층의 논리적 호출이 한 외부 층에서만 호출되는 것을 쉽게 파악할 수 있다.또 각 층의 역할은 고려하기 쉽다.
presentation층은 컨트롤러 군입니다.
이 서비스에 대한 요청 컨트롤러를 수집함으로써 응용층의 논리가 어디에서 왔는지 쉽게 알 수 있다.
레이어는 어댑터 그룹입니다.
외부에 요청한 어댑터를 관리하는 곳에서 응용층과domain층이 준비한 인터페이스를 모았다.
응용층과domain층을 구분하다
응용 프로그램층과domain층을 명확하게 구분함으로써 역모델 빈혈을 방지하기 쉽다
domain.서비스와domain.모델 나누기
역층에 포함된 모델과 서비스를 구분함으로써 역대상이 갖춰야 할 규칙과 여러 개의 역대상을 뛰어넘는 처리 경계를 명확히 함으로써 역모델의 빈혈을 방지하기 쉽다
domain.root entity 이름으로 모델 분리
domain.모델은 모든 집합의 루트 실체를 최고급 폴더로 하고 집합 내의 하위 영역 대상을 넣으면 집합을 쉽게 파악할 수 있습니다.
테스트 폴더는 응용 프로그램 이외에 있습니다
그림의Tests는 응용 프로그램 이외의 폴더에 있는 예시가 의도적으로 이루어질 수 있는지 확인하는 데 사용되는 테스트입니다
Reference
이 문제에 관하여([역구동 디자인] 양파 구조의 폴더 구조), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Yuuki557/items/b9e456f9841f3335d574
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
┳ app ┳ presentation ━━┳ REST API
┃ ┃ ┗ SUB
┃ ┠ infrastructure ┳ repository(実装: domain.repository)
┃ ┃ ┗ PUB (実装: application.PUB)
┃ ┠ application ━━ ┳ usecase1
┃ ┃ ┠ usecase2
┃ ┃ ┗ PUB(インターフェース)
┃ ┗ domain ━━━━━━━━┳ models ┳ root-entity1 ┳ child-value-object1
┃ ┠ ┃ ┗ child-value-object2
┃ ┠ ┗ root-entity2 ┳ child-value-object1
┃ ┠ ┗ child-value-object2
┃ ┠ services
┃ ┠ factory
┃ ┗ repository(インターフェース)
┗ tests
고려 사항
폴더별로 레이어 구분
이 그림에 따라presentation, infrastructure, 응용 프로그램,domain을 통해 폴더를 구분합니다.폴더 단위로 층을 나누면 내부 층의 논리적 호출이 한 외부 층에서만 호출되는 것을 쉽게 파악할 수 있다.또 각 층의 역할은 고려하기 쉽다.
presentation층은 컨트롤러 군입니다.
이 서비스에 대한 요청 컨트롤러를 수집함으로써 응용층의 논리가 어디에서 왔는지 쉽게 알 수 있다.
레이어는 어댑터 그룹입니다.
외부에 요청한 어댑터를 관리하는 곳에서 응용층과domain층이 준비한 인터페이스를 모았다.
응용층과domain층을 구분하다
응용 프로그램층과domain층을 명확하게 구분함으로써 역모델 빈혈을 방지하기 쉽다
domain.서비스와domain.모델 나누기
역층에 포함된 모델과 서비스를 구분함으로써 역대상이 갖춰야 할 규칙과 여러 개의 역대상을 뛰어넘는 처리 경계를 명확히 함으로써 역모델의 빈혈을 방지하기 쉽다
domain.root entity 이름으로 모델 분리
domain.모델은 모든 집합의 루트 실체를 최고급 폴더로 하고 집합 내의 하위 영역 대상을 넣으면 집합을 쉽게 파악할 수 있습니다.
테스트 폴더는 응용 프로그램 이외에 있습니다
그림의Tests는 응용 프로그램 이외의 폴더에 있는 예시가 의도적으로 이루어질 수 있는지 확인하는 데 사용되는 테스트입니다
Reference
이 문제에 관하여([역구동 디자인] 양파 구조의 폴더 구조), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Yuuki557/items/b9e456f9841f3335d574
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([역구동 디자인] 양파 구조의 폴더 구조), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Yuuki557/items/b9e456f9841f3335d574텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)