Unser Code sollte offen für Erweiterungen, aber geschlossen für Änderungen sein. (Open/Close-Prinzip) High-Level-Module sollten nichts von Low-Level-Modulen importieren. Sie sollten von Abstraktionen abhängen. (Dependency Inversion-Prinzip) Unser Hauptziel bei der Programmentwicklung sollte die Einfachheit sein und unnötige Komplexität sollte vermieden werden. (KISS-Prinzip)