Tactical Design
7 pages
-
Business Logic Implementation Patterns
pattern
Four-pattern spectrum: transaction script, active record, domain model, event-sourced domain model; subdomain-to-pattern mapping; transaction script failure modes; full tactical decision tree (pattern→architecture→testing strategy); migration paths between patterns
-
Domain Model Pattern
pattern
DDD tactical pattern for core subdomain business logic: value objects (immutable, identified by values), entities, aggregates (consistency boundary, one-per-transaction rule, aggregate root, OCC), domain events, domain services; Evans elaborations on associations, entity identity, context-dependent entity/VO classification, service partitioning, modules as model elements
-
Domain-Driven Design: Tackling Complexity in the Heart of Software
source
*Domain-Driven Design* — Eric Evans
-
Learning Domain-Driven Design
source
*Learning Domain-Driven Design* — Vlad Khononov
-
Model-Driven Design
concept
Evans' binding principle: one model for analysis and design; code is the model's expression; hands-on modellers; bones-showing; requires layered architecture for domain isolation; breakthroughs: non-linear returns, cascade of insights, Share Pie story
-
Repository Pattern
pattern
Evans' REPOSITORY pattern: in-memory collection illusion over aggregate roots; hides persistence technology; only for roots needing direct access; transaction control left to client; factory/repository complementarity
-
Specification Pattern
pattern
predicate VALUE OBJECT for expressing domain rules: three uses (validation, selection/querying, building to order); composite Specification with AND/OR/NOT; subsumption; integrates with REPOSITORY via selectSatisfying()