← ClaudeAtlas

software-designlisted

Software design principles, patterns, and architecture from SOLID through distributed systems. Covers the five SOLID principles with violations and fixes, DRY/KISS/YAGNI heuristics, separation of concerns, 12 GoF design patterns organized by intent (creational, structural, behavioral), architectural patterns (MVC, MVP, MVVM, layered, hexagonal, microservices, event-driven), coupling and cohesion metrics, dependency injection, and the design decision framework for choosing between competing approaches. Use when making design decisions, reviewing architecture, refactoring code, or teaching software engineering principles.
Tibsfox/gsd-skill-creator · ★ 61 · AI & Automation · score 80
Install: claude install-skill Tibsfox/gsd-skill-creator
# Software Design Software design is the discipline of organizing code so that it is correct, understandable, and changeable. A well-designed system makes the right things easy and the wrong things hard. This skill catalogs the principles, patterns, and architectural styles that professional software engineers use to achieve this, with emphasis on when each applies and when it does not. **Agent affinity:** dijkstra (structured programming, formal reasoning about design), kay (OOP, message-passing architecture) **Concept IDs:** code-code-organization, code-abstraction, code-decomposition, code-peer-review ## Part 1 -- Design Principles ### The SOLID Principles Robert C. Martin codified these five principles for object-oriented design. They apply more broadly to any modular system. #### S -- Single Responsibility Principle (SRP) **Statement:** A module should have one, and only one, reason to change. **What it means.** Each class, function, or module should serve exactly one purpose. If you change the database schema, only the database layer should change. If you change the UI layout, only the UI layer should change. **Violation signal.** A class that has methods for both parsing user input AND writing to the database. A function that both validates data AND sends an email. **Fix.** Separate the responsibilities into distinct modules. A UserValidator validates; a UserRepository persists; an EmailService sends. #### O -- Open/Closed Principle (OCP) **Statement:** So