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.

intermediate

Multiton Pattern

Manage a map of named singleton instances, providing controlled access to a finite set of shared...

beginner

MVC Pattern in Modern Frontend Applications

Apply the Model-View-Controller pattern to React and Vue applications to separate data, UI, and...

beginner

Null Object Pattern

Use a default object instead of null references to eliminate null checks and simplify client code....

intermediate

Object Pool Pattern

Reuse expensive objects instead of creating and destroying them repeatedly. A creational pattern...

beginner

Observer Pattern

Define a subscription mechanism to notify multiple objects about events. A behavioral design...

advanced

Outbox Pattern

Reliably publish domain events by persisting them in an outbox table within the same database...

beginner

Page Controller Pattern

Use a dedicated controller object for each logical page in a web application, handling the request...

beginner

Partial Class Pattern: Examples

Learn the Partial Class Pattern to split class definitions across multiple files. Examples in...

intermediate

Plugin Pattern

Enable third-party extensions by defining extension points in a host system that loads and executes...

intermediate

Priority Queue Pattern

Process tasks based on priority rather than arrival order, ensuring high-priority work gets...

intermediate

Prototype Pattern

Create new objects by copying existing ones. A creational design pattern for cloning and object...

intermediate

Prototype Pattern for Object Cloning and Configuration

Create new objects by copying existing ones, allowing pre-configured templates and avoiding...

intermediate

Proxy Pattern

Provide a surrogate or placeholder for another object to control access to it. A structural design...

intermediate

Proxy Pattern for API Response Caching

How to implement a caching proxy that intercepts API calls and stores responses to reduce latency...

intermediate

Queue-Based Load Leveling Pattern

Introduce a queue between task producers and consumers to smooth out traffic spikes, decouple...

intermediate

Read-Through Cache Pattern

A transparent cache layer that intercepts read requests, fetches from the data source on miss, and...

advanced

Refresh-Ahead Cache Pattern

Proactively refresh cache entries before they expire to eliminate cache misses on hot keys and...

intermediate

Registry Pattern

Centralize access to shared services and objects via a lookup table. A structural pattern that...

intermediate

Repository Pattern with TypeScript Generics

Implement a type-safe repository pattern in TypeScript that decouples data access logic from domain...

intermediate

Retry Pattern

Retry an operation that has failed with transient errors, using configurable strategies like fixed...

No results found.