design
Practical resources about design for software engineers.
152 results
Patterns for Maintainable Code
Design patterns are not cookbook recipes — they are a shared vocabulary for discussing solutions to recurring problems. Knowing when to apply (and when to avoid) a pattern is a hallmark of senior engineering.
Browse our catalog of creational, structural, and behavioral patterns. Each entry includes a real-world scenario, UML diagrams, implementation in multiple languages, and a discussion of trade-offs. From Singleton to Outbox, find the right tool for your context.
Bridge Pattern for Decoupling UI Components from Themes
Separate an abstraction from its implementation so both can vary independently using the Bridge...
Builder Pattern
Construct complex objects step by step. A creational design pattern for readable, configurable...
Builder Pattern for Complex Configuration Objects
Use the Builder pattern to construct complex configuration objects with optional parameters and...
Business Delegate Pattern
Reduce coupling between presentation and business tiers by introducing an intermediary that handles...
Cache-Aside Pattern
Load data into the cache on demand from the backing store. A caching pattern that gives the...
Cache Invalidation Pattern
Strategies for keeping cached data fresh: TTL expiration, explicit invalidation, write-through, and...
Cache Stampede Prevention Pattern
Prevent thundering herd cache misses with locks, single-flight, and early refresh strategies to...
Chain of Responsibility for Request Processing Middleware
Pass requests along a chain of handlers where each handler decides whether to process the request...
Chain of Responsibility Pattern
Pass requests along a chain of handlers until one handles it. A behavioral design pattern for...
Circuit Breaker Pattern
Prevent cascading failures by stopping requests to failing services. An architectural pattern for...
Claim Check Pattern
Store large payloads in external storage and pass only a lightweight reference token through the...
Command Pattern
Encapsulate a request as an object, letting you parameterize clients with queues, logs, and...
Command Pattern with Undo/Redo in TypeScript
Implement the Command pattern to encapsulate requests as objects, enabling undo/redo operations,...
Compensating Transaction Pattern
Undo the effects of a completed transaction by executing a counter-operation, enabling eventual...
Composite Entity Pattern
Map a coarse-grained entity to multiple database tables by composing dependent objects, reducing...
Composite Pattern
Compose objects into tree structures to represent part-whole hierarchies. A structural design...
Composite Pattern for UI Component Trees in React
Use the Composite pattern to compose objects into tree structures, letting clients treat individual...
Content Delivery Network (CDN) Pattern
Distribute static and live content through geographically dispersed edge servers to reduce latency,...
Context Object Pattern: Examples
Learn the Context Object Pattern to reduce parameter bloat. Practical examples in Python, Java, and...
CQRS Pattern
Separate read and write operations into different models, optimizing each for their specific...
No results found.