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 语言
英语
星标
4
分支
3

安装方式

默认使用会先检查来源的 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 查看