SOLID (Applied, Not Theoretical)
- Single Responsibility — each source generator, DSL, and library owns one concern
- Open/Closed — extension points and middleware pipelines; attributes declare intent, generators handle evolution
- Liskov Substitution — hand-written Fakes satisfy interface contracts identically to real implementations
- Interface Segregation as primary driver — 1-method interfaces as standard across the ecosystem
- Dependency Inversion via optional constructor parameters with defaults — no DI container required
Custom Patterns (FrenchExDev Ecosystem)
- Domain-Driven Design — attribute-based, no base classes:
[AggregateRoot],[Entity],[ValueObject],[Command],[DomainEvent],[Invariant] - CQRS — lightweight (interface-level separation, no event sourcing):
ICommandHandler<TCommand, TResult>,IQueryHandler<TQuery, TResult>, direct injection (no mediator) - Result Pattern — composable
Result<T, TError>types replacing exceptions:Map,Bind,Recover,Tap,Ensure - Builder Pattern — source-generated async construction with fluent API, validation, circular reference detection
- Finite State Machine — async-first, three-tier (Dynamic/Typed/Rich), guards, entry/exit/transition actions, hierarchical states with LCA, parallel regions, deferred events, timer transitions, 8-point listener interface, Mermaid/Graphviz export, source-generated, Result monad integration
- Meta-metamodeling (M3) — 5 self-describing primitives (
[MetaConcept],[MetaProperty],[MetaReference],[MetaConstraint],[MetaInherits]) forming the foundation for all DSLs
POSA (Architectural)
- Layers — M0→M1→M2→M3 metamodel, bounded context separation
- Pipes and Filters — design pipelines, middleware chains
- Microkernel — plugin architecture (Diem CMF extensibility)
- Reflection — M3 meta-metamodel (types describing types)
GoF (Design)
- Strategy — pluggable parsers (GNU, Cobra, argparse, custom)
- Factory — source generators produce typed instances at compile time
- Observer — domain events, SignalR notifications
- Visitor — Roslyn syntax tree walking
- Composite — requirement hierarchy, DOM trees
- Adapter — Anti-Corruption Layers translating between bounded contexts
- Proxy — BinaryWrapper typed proxies over raw CLI binaries
- Chain of Responsibility — middleware pipeline, design pipeline stages
- Decorator — typed specs on features
- Template Method — attribute-based DSLs (declare intent, generator handles implementation)