Chapter 11: Design

Deep module

Also called Shallow module

A module that does a lot behind a small interface. A shallow one has an interface nearly as complicated as what it does, so using it spares you very little. The words are John Ousterhout's.

A deep module means less to hold in context per task, and one obvious place to make a change. Asking an agent for small pieces without asking for depth can get you the opposite: every helper correct, and the caller left doing the real work.

Say it to your agent

“Merge these six exported cache helpers into one function: cached(key, ttlMs, compute). Expiry and the key format become private. Callers must not know either exists.”

The workshop

Name a word, or describe what you mean in everyday language.