Skip to main content

General Principles

General principles are cross-cutting design heuristics that guide decision-making across all software projects. They transcend specific programming languages, frameworks, and architectural patterns, providing universal guidance for writing code that is maintainable, testable, and resilient to change.

These principles form the foundation upon which more specialized design patterns and architectural approaches are built. They answer fundamental questions: How do we eliminate unnecessary complexity? When should we add features? How do we organize responsibilities? By internalizing these principles, developers build intuition for making good design decisions under uncertainty.

Unlike rigid rules, principles require judgment. They sometimes conflict with each other, and applying them involves trade-offs. The goal is not blind adherence but thoughtful application—understanding the "why" behind each principle so you can make informed decisions about when to apply them and when to break them intentionally.

General Principles Learning Map