Skip to main content

arch-bce-pattern

Acts as a specialist in the Boundary-Control-Entity architectural pattern (BCE / ECB, Ivar Jacobson). Defines a clean separation between external interfaces (Boundary), business logic (Control), and domain entities (Entity), with strategies for incremental legacy-code migration.

소스 정보

저장소
dandgabr/Coacus
최근 소스 활동
2026년 9월 28일 14:03
감지된 SKILL.md 언어
영어
스타
6
포크
5

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
5 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
arch-bce-pattern
description
Acts as a specialist in the Boundary-Control-Entity architectural pattern (BCE / ECB, Ivar Jacobson). Defines a clean separation between external interfaces (Boundary), business logic (Control), and domain entities (Entity), with strategies for incremental legacy-code migration.
# Boundary-Control-Entity (BCE) Architecture Pattern This skill defines the engineering guidelines and modeling strategies for the **Boundary-Control-Entity (BCE / ECB)** pattern, formulated by Ivar Jacobson for use-case-driven development and decoupled business components. --- ## 🏛️ 1. The Three Canonical BCE Layers ``` [ External Client / UI ] │ ▼ ┌──────────────────┐ │ BOUNDARY │ <-- Entry point, REST/gRPC APIs, Web, Messaging, DTO Translation └─────────┬────────┘ │ ▼ ┌──────────────────┐ │ CONTROL │ <-- Use Case Coordination, Business Rules, Transactions └─────────┬────────┘ │ ▼ ┌──────────────────┐ │ ENTITY │ <-- Domain Model, Invariants, State, and Persistence └──────────────────┘ ``` ### A. Boundary - Isolates the component from the outside world (network protocols, JSON format, HTTP controllers, messaging queues). - Responsibility: structural input validation, request routing, and conversion of DTOs into domain models. - **Rule**: Boundaries talk only to Controls or to Entities through DTOs. They never call Entities directly for mutation operations. ### B. Control (Use Case) - Orchestrates business use cases and the sequence of operations. - Responsibility: flow rules, transaction management, business policies, and emission of domain events. - **Rule**: Controls know nothing about transport details (no HTTP annotations or servlets); they depend only on interfaces and Entities. ### C. Entity (Business Entity) - Encapsulates the state, identity, and fundamental business invariants. - Responsibility: internal computation of atomic rules, persistence, and data consistency. --- ## 🔄 2. Incremental Migration Procedure (Migrate-to-BCE) To refactor a legacy project onto the BCE architecture without production breaks: 1. **Identify Business Components**: Group classes by domain capability, not by technical layer alone. 2. **Extract Boundaries**: Isolate `@RestController` or `@Path` classes by moving them into the `boundary` package. 3. **Decouple Service Logic into Controls**: Move orchestration flow out of monolithic `@Service` classes into atomic control classes focused on one use case each. 4. **Isolate Entities**: Keep persistence entities in the `entity` package and protect their invariants.
GitHub에서 보기