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

 — 

 — 

 — 

 —