Loading...
Loading...
Compare original and translation side by side
.dlang.dlangDomain Sales {
description: "Revenue generation"
vision: "Make buying easy"
}
// Subdomains use 'in'
Domain OnlineSales in Sales {
description: "Digital sales channel"
}Domain Sales {
description: "Revenue generation"
vision: "Make buying easy"
}
// Subdomains use 'in'
Domain OnlineSales in Sales {
description: "Digital sales channel"
}Classification CoreDomain
Classification SupportingDomain
Classification GenericSubdomain
Team SalesTeam
Team PlatformTeamClassification CoreDomain
Classification SupportingDomain
Classification GenericSubdomain
Team SalesTeam
Team PlatformTeambc Orders for Sales as CoreDomain by SalesTeam {
description: "Order lifecycle and orchestration"
terminology {
term Order: "A customer's request to purchase"
aka PurchaseOrder
examples "Order #12345"
term OrderLine: "A single item in an order"
}
decisions {
decision EventSourcing: "Capture every state change"
policy Refunds: "Allow refunds within 30 days"
rule MinOrder: "Minimum order is $10"
}
metadata {
Language: "TypeScript"
}
}forasbyclassification:team:bc Orders for Salesterminologyglossarymetadatametadecisionsrulesrelationshipsintegrationsbc Orders for Sales as CoreDomain by SalesTeam {
description: "Order lifecycle and orchestration"
terminology {
term Order: "A customer's request to purchase"
aka PurchaseOrder
examples "Order #12345"
term OrderLine: "A single item in an order"
}
decisions {
decision EventSourcing: "Capture every state change"
policy Refunds: "Allow refunds within 30 days"
rule MinOrder: "Minimum order is $10"
}
metadata {
Language: "TypeScript"
}
}forasbyclassification:team:bc Orders for SalesterminologyglossarymetadatametadecisionsrulesrelationshipsintegrationsMetadata Language
Metadata Repository
bc Orders for Sales {
metadata {
Language: "TypeScript"
Repository: "github.com/acme/orders"
}
}Metadata Language
Metadata Repository
bc Orders for Sales {
metadata {
Language: "TypeScript"
Repository: "github.com/acme/orders"
}
}ContextMap SalesSystem {
contains Orders, Billing, Shipping
[OHS] Orders -> [CF] Billing
[ACL] Shipping <- Orders
[P] Orders <-> [P] Inventory
Orders >< LegacySystem
}-><-<->><| Pattern | Abbreviation | Meaning |
|---|---|---|
| Open Host Service | | Well-defined protocol for consumers |
| Conformist | | Adopts upstream model without translation |
| Anti-Corruption Layer | | Translates between models to protect downstream |
| Published Language | | Shared documented language for integration |
| Shared Kernel | | Shared subset of the domain model |
| Partnership | | Two contexts coordinate development together |
ContextMap SalesSystem {
contains Orders, Billing, Shipping
[OHS] Orders -> [CF] Billing
[ACL] Shipping <- Orders
[P] Orders <-> [P] Inventory
Orders >< LegacySystem
}-><-<->><| 模式 | 缩写 | 含义 |
|---|---|---|
| Open Host Service | | 为消费者定义的标准化协议 |
| Conformist | | 采用上游模型,无需转换 |
| Anti-Corruption Layer | | 在模型间进行转换,保护下游系统 |
| Published Language | | 用于集成的共享文档化语言 |
| Shared Kernel | | 领域模型的共享子集 |
| Partnership | | 两个上下文协作开发 |
thisbc Orders for Sales {
relationships {
[OHS] this -> [CF] Billing
[ACL] this <- Payments
}
}thisbc Orders for Sales {
relationships {
[OHS] this -> [CF] Billing
[ACL] this <- Payments
}
}DomainMap Portfolio {
contains Sales, Support, Platform
}DomainMap Portfolio {
contains Sales, Support, Platform
}Namespace Acme.Sales {
bc Orders for Sales {}
}
// Reference with FQN
ContextMap System {
contains Acme.Sales.Orders
}Namespace Acme.Sales {
bc Orders for Sales {}
}
// Reference with FQN
ContextMap System {
contains Acme.Sales.Orders
}import "./shared/teams.dlang"
import "../common/classifications.dlang"
import "acme/ddd-core" as Core
bc Orders for Core.SalesDomain {}model.yamlimport "./shared/teams.dlang"
import "../common/classifications.dlang"
import "acme/ddd-core" as Core
bc Orders for Core.SalesDomain {}model.yaml// Line comment
/* Block comment */
// All equivalent:
description: "Using colon"
vision = "Using equals"
team is SalesTeam// Line comment
/* Block comment */
// All equivalent:
description: "Using colon"
vision = "Using equals"
team is SalesTeamforforakaexamplesakaexamples.dlang.dlangmy-project/
├── model.yaml
├── index.dlang
├── shared/
│ ├── teams.dlang
│ └── classifications.dlang
└── domains/
├── sales/
│ └── index.dlang
└── shipping/
└── index.dlangindex.dlangmodel.yamlmodel:
name: my-company/domain-model
version: 1.0.0
entry: index.dlang
paths:
"@": "./"
"@shared": "./shared"
dependencies:
acme/ddd-core: "v1.0.0"my-project/
├── model.yaml
├── index.dlang
├── shared/
│ ├── teams.dlang
│ └── classifications.dlang
└── domains/
├── sales/
│ └── index.dlang
└── shipping/
└── index.dlangindex.dlangmodel.yamlmodel:
name: my-company/domain-model
version: 1.0.0
entry: index.dlang
paths:
"@": "./"
"@shared": "./shared"
dependencies:
acme/ddd-core: "v1.0.0"Classification CoreDomain
Classification SupportingDomain
Team OrderTeam
Team ShippingTeam
Domain ECommerce {
description: "Online retail platform"
vision: "Seamless shopping experience"
}
Metadata Language
bc Orders for ECommerce as CoreDomain by OrderTeam {
description: "Order lifecycle from cart to delivery"
terminology {
term Order: "A customer's request to purchase items"
term Cart: "Temporary collection of items before purchase"
}
metadata {
Language: "TypeScript"
}
}
bc Shipping for ECommerce as SupportingDomain by ShippingTeam {
description: "Package routing and delivery tracking"
terminology {
term Shipment: "A collection of packages traveling together"
term Carrier: "The company performing delivery"
}
}
ContextMap ECommerceIntegration {
contains Orders, Shipping
[OHS] Orders -> [CF] Shipping
}Classification CoreDomain
Classification SupportingDomain
Team OrderTeam
Team ShippingTeam
Domain ECommerce {
description: "Online retail platform"
vision: "Seamless shopping experience"
}
Metadata Language
bc Orders for ECommerce as CoreDomain by OrderTeam {
description: "Order lifecycle from cart to delivery"
terminology {
term Order: "A customer's request to purchase items"
term Cart: "Temporary collection of items before purchase"
}
metadata {
Language: "TypeScript"
}
}
bc Shipping for ECommerce as SupportingDomain by ShippingTeam {
description: "Package routing and delivery tracking"
terminology {
term Shipment: "A collection of packages traveling together"
term Carrier: "The company performing delivery"
}
}
ContextMap ECommerceIntegration {
contains Orders, Shipping
[OHS] Orders -> [CF] Shipping
}DomaindomBoundedContextbcContextMapcmapDomainMapdmapNamespacensTeamClassificationMetadataImportimportforasbyterminologyglossarydecisionsrulesmetadatametarelationshipsintegrationstermdecisionpolicyruleakasynonymsexamplesDomaindomBoundedContextbcContextMapcmapDomainMapdmapNamespacensTeamClassificationMetadataImportimportforasbyterminologyglossarydecisionsrulesmetadatametarelationshipsintegrationstermdecisionpolicyruleakasynonymsexamplesDomainLang.vscode-domainlangdomainlang_validatedomainlang_listdomainlang_getdomainlang_explainnpm install -g @domainlang/clidlang installdlang model treedlang model statusnpm install @domainlang/languageDomainLang.vscode-domainlangdomainlang_validatedomainlang_listdomainlang_getdomainlang_explainnpm install -g @domainlang/clidlang installdlang model treedlang model statusnpm install @domainlang/language