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.
Multiton Pattern
Manage a map of named singleton instances, providing controlled access to a finite set of shared...
MVC Pattern in Modern Frontend Applications
Apply the Model-View-Controller pattern to React and Vue applications to separate data, UI, and...
Null Object Pattern
Use a default object instead of null references to eliminate null checks and simplify client code....
Object Pool Pattern
Reuse expensive objects instead of creating and destroying them repeatedly. A creational pattern...
Observer Pattern
Define a subscription mechanism to notify multiple objects about events. A behavioral design...
Outbox Pattern
Reliably publish domain events by persisting them in an outbox table within the same database...
Page Controller Pattern
Use a dedicated controller object for each logical page in a web application, handling the request...
Partial Class Pattern: Examples
Learn the Partial Class Pattern to split class definitions across multiple files. Examples in...
Plugin Pattern
Enable third-party extensions by defining extension points in a host system that loads and executes...
Priority Queue Pattern
Process tasks based on priority rather than arrival order, ensuring high-priority work gets...
Prototype Pattern
Create new objects by copying existing ones. A creational design pattern for cloning and object...
Prototype Pattern for Object Cloning and Configuration
Create new objects by copying existing ones, allowing pre-configured templates and avoiding...
Proxy Pattern
Provide a surrogate or placeholder for another object to control access to it. A structural design...
Proxy Pattern for API Response Caching
How to implement a caching proxy that intercepts API calls and stores responses to reduce latency...
Queue-Based Load Leveling Pattern
Introduce a queue between task producers and consumers to smooth out traffic spikes, decouple...
Read-Through Cache Pattern
A transparent cache layer that intercepts read requests, fetches from the data source on miss, and...
Refresh-Ahead Cache Pattern
Proactively refresh cache entries before they expire to eliminate cache misses on hot keys and...
Registry Pattern
Centralize access to shared services and objects via a lookup table. A structural pattern that...
Repository Pattern with TypeScript Generics
Implement a type-safe repository pattern in TypeScript that decouples data access logic from domain...
Retry Pattern
Retry an operation that has failed with transient errors, using configurable strategies like fixed...
No results found.