Competencies: Software Architecture > Design Patterns
Design Patterns
Body of Knowledge
| Topic | Description | Relevance | Career Tracks |
|---|---|---|---|
Creational Patterns |
Factory, Abstract Factory, Builder, Singleton, Prototype for object creation |
Critical |
Software Architect, Backend Developer |
Structural Patterns |
Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy patterns |
Critical |
Software Architect, Backend Developer |
Behavioral Patterns |
Strategy, Observer, Command, State, Template Method, Iterator, Mediator |
Critical |
Software Architect, Backend Developer |
SOLID Principles |
Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion |
Critical |
Software Architect, Backend Developer, DevOps Engineer |
Domain-Driven Design (DDD) |
Bounded contexts, aggregates, entities, value objects, domain events |
High |
Software Architect, Backend Developer |
CQRS Pattern |
Command Query Responsibility Segregation for read/write optimization |
High |
Software Architect, Backend Developer |
Event Sourcing |
Storing state changes as sequence of events, event replay, temporal queries |
High |
Software Architect, Backend Developer, Data Engineer |
Repository Pattern |
Abstracting data persistence, unit of work, specification pattern |
High |
Backend Developer, Software Architect |
Dependency Injection |
IoC containers, constructor injection, service locators, composition root |
Critical |
Software Architect, Backend Developer |
Anti-Patterns Recognition |
God object, spaghetti code, golden hammer, premature optimization awareness |
High |
Software Architect, Backend Developer |
Refactoring Patterns |
Extract method, replace conditional with polymorphism, introduce parameter object |
High |
Backend Developer, Software Architect |
Personal Status
| Topic | Level | Evidence | Active Projects | Gaps |
|---|---|---|---|---|
To be populated |
— |
— |
— |
— |