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.

Informações da origem

Repositório
dandgabr/Coacus
Última atividade na origem
28 de setembro de 2026 às 14:03
Idioma detectado do SKILL.md
inglês
Estrelas
6
Forks
5

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Explorador de arquivos
5 arquivos

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
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.
Ver no GitHub