Skip to content
Software Design

Software design

Welcome to the Software Design section. Here you will find guides, examples, and best practices to design software that is robust, maintainable, and less likely to turn into a monument to desperate refactoring.

This section covers both code design and architectural design: principles like cohesion, coupling, SOLID, and dependency injection live next to architectural patterns, DDD, and modeling techniques. The goal is not to collect buzzwords, but to understand when a design choice actually reduces the cost of change.

Last updated on