# Software Design (MoC) ## Overview Notes about software design. ## Notes <!-- QueryToSerialize: LIST FROM #software_design AND !#type/quote AND !#type/creation/quote WHERE public_note = true SORT file.name ASC --> <!-- SerializedQuery: LIST FROM #software_design AND !#type/quote AND !#type/creation/quote WHERE public_note = true SORT file.name ASC --> - [[Atomicity]] - [[Barrel Pattern]] - [[Bertrand Meyer]] - [[Composition over Inheritance]] - [[Composition Root]] - [[Convention over Configuration]] - [[Dependency Injection (DI)]] - [[Dependency Inversion Principle (DIP)]] - [[Design by Contract]] - [[Don't Repeat Yourself (DRY) principle]] - [[Fail Fast]] - [[High Cohesion]] - [[Idempotency]] - [[Interface Segregation Principle (ISP)]] - [[Inversion of Control (IoC)]] - [[Keep It Simple Stupid (KISS)]] - [[Liskov Substitution Principle (LSP)]] - [[Loose Coupling]] - [[Malleable Software]] - [[Mark Seemann]] - [[Observer Pattern]] - [[Open Closed Principle (OCP)]] - [[Organize Everything With The LIFT principle (Article)]] - [[Pure Function]] - [[Rich Hickey]] - [[Service Locator]] - [[Single Responsibility Principle (SRP)]] - [[Software Architecture]] - [[Software Design Patterns for AI Skills and Agents]] - [[Solid architecture principle]] - [[SOLID Principles]] - [[Strategy Pattern]] - [[Template Method]] - [[You Aren't Gonna Need It (YAGNI)]] <!-- SerializedQuery END --> ## Quotes <!-- QueryToSerialize: LIST FROM #software_design AND (#type/quote OR #type/creation/quote) WHERE public_note = true SORT file.name ASC --> <!-- SerializedQuery: LIST FROM #software_design AND (#type/quote OR #type/creation/quote) WHERE public_note = true SORT file.name ASC --> - [[Don't try to find the best design in software architecture. Instead, strive for the least worst combination of trade-offs]] - [[Think first, code second]] <!-- SerializedQuery END -->