Designing Deep Modules

Guides designing, reviewing, and refactoring modules for depth — maximizing functionality hidden behind minimal interfaces. Analyzes module boundaries, identifies shallow modules and classitis, applies deep module heuristics (pull complexity downward, define errors out of existence, design for the common case), and produces refactoring plans. Covers information hiding, leaky abstractions, and abstraction boundaries based on Ousterhout's A Philosophy of Software Design. Use when designing module interfaces, reviewing code for shallow abstractions, refactoring pass-through layers, evaluating API surface area, reducing interface complexity, or applying deep module principles at any scale (functions, classes, packages, services, APIs).

msewell 3e7c2d2 3 files · 28.4 KB Updated

File contents

msewell/agent-stuff/tree/main/skills/designing-deep-modules commit 3e7c2d26f4

Frequently asked questions

npx skillmds@latest add msewell/designing-deep-modules