SOLID and GRASP tell you how to assign responsibilities. KISS, DRY, and YAGNI tell you how much to build and how complex to make it. These three heuristics operate at a higher level than patterns — they are meta-principles that constrain the design process itself. The Principle of Least Surprise (also called Least Astonishment) ties them together: a codebase should behave in the way a competent developer expects, without hidden complexity, unnecessary duplication, or speculative features. Together, these four principles define the complexity budget of a healthy design.
ℹ️The goal of all four principles is the same: reduce the cognitive load required to understand, modify, and maintain a codebase. Complexity is not inherently bad — necessary complexity is the cost of solving hard problems. Accidental complexity — complexity introduced by poor design choices — is pure waste.
Content is available with subscription.
Get full access to all courses on the platform for one year with a single payment.
▼
Unlike other platforms that charge per course, here you get everything for one price, and after one year of use there will be no automatic charge for the following year.