Skills Development A Philosophy of Software Design

A Philosophy of Software Design

v20260910
a-philosophy-of-software-design
This skill enables applying John Ousterhout's design principles to reduce complexity in software systems. It guides decisions on module boundaries, API design, information hiding, and abstraction depth. Use it when refactoring shallow interfaces or managing cognitive load during development. Ideal for architects and senior engineers optimizing system structure and ensuring maintainable codebases through proper abstraction layers.
Get Skill
184 downloads
Overview

A Philosophy of Software Design Skill

Use this skill when a task involves module design, API design, information hiding, abstraction depth, cognitive load, or refactoring shallow interfaces.

Before making design or code decisions, read and apply a-philosophy-of-software-design.mini.md. Use a-philosophy-of-software-design.md only as a deeper reference when the mini rules are not enough for the current design tradeoff.

Info
Category Development
Name a-philosophy-of-software-design
Version v20260910
Size 9.54KB
Updated At 2026-09-12
Language