Home/Foundations/Digestible Interfaces

Section 1.4.10

Further Reading and Resources

Digestible Interfaces

Further Reading and Resources

The principles of digestible interface design connect to a rich body of work in software engineering, cognitive psychology, and design thinking. This section provides resources for deeper exploration.

Related Chapters in This Book

Part 1: Foundations

  • Chapter 3: Architecture Principles - Component decomposition and interface boundaries
  • Chapter 5: New Bottlenecks - How interface complexity becomes a bottleneck at scale (coming soon)

Part 2: Playbook

  • Requirements to Design - Translating requirements into digestible interfaces (coming soon)
  • Design to Implementation - Breaking down design into implementable interfaces (coming soon)

Part 3: Patterns & Tools

  • Interface Boundaries - Deep dive into interface design patterns (coming soon)
  • OpenAPI for REST APIs - Designing digestible REST interfaces
  • JSON Schema Validation - Using schemas to make interfaces self-documenting (coming soon)

External Resources

Books

  • "The Design of Everyday Things" by Don Norman Classic work on interface design principles (physical and digital). The cognitive psychology applies equally to software interfaces.

  • "A Philosophy of Software Design" by John Ousterhout Directly addresses complexity management and interface design for software systems.

  • "Clean Code" by Robert C. Martin Chapters on function design and naming are particularly relevant to digestible interfaces.

  • "Domain-Driven Design" by Eric Evans Bounded contexts and ubiquitous language relate directly to digestibility.

Papers and Articles

  • "The Magical Number Seven, Plus or Minus Two" by George A. Miller (1956) Foundational paper on working memory limits.

  • "Cognitive Load Theory" by John Sweller Framework for understanding how complexity affects learning and comprehension.

Tools and Resources

  • Linters and Complexity Analyzers

    • pylint, eslint (parameter count, complexity metrics)
    • sonarqube (code smell detection)
    • radon (Python complexity metrics)
  • API Design Guides

    • Microsoft REST API Guidelines
    • Google API Design Guide
    • Stripe API Design Philosophy

Online Communities

  • /r/ExperiencedDevs on Reddit - Discussions on interface design tradeoffs
  • Software Engineering Stack Exchange - Q&A on API and interface design
  • Hacker News - Debates on software design philosophy

Continuing Your Learning

Practice makes principles stick. Here are exercises to build your digestible interface skills:

Exercise 1: Interface Audit

Pick a module in your current codebase and evaluate three interfaces using the metrics from Section 8:

  • Parameter count (target: ≤5)
  • Cyclomatic complexity (target: ≤10)
  • Lines per function (target: ≤50)
  • Nesting depth (target: ≤3)

Document your findings and identify one interface to refactor.

Exercise 2: Refactoring Practice

Take a function with more than 7 parameters and refactor it:

  1. Group related parameters into data classes
  2. Replace boolean parameters with enums or named methods
  3. Make implicit dependencies explicit
  4. Verify the refactored interface passes the "explain in 2-3 sentences" test

Exercise 3: AI Agent Test

Show an interface you've designed to an AI agent (Claude, GPT, etc.) without providing extensive documentation:

  1. Give only the function signature and type definitions
  2. Ask it to write code that uses the interface
  3. Observe where it hesitates or makes mistakes
  4. Use the findings to improve the interface

Exercise 4: Consistency Audit

Review a service layer in your codebase:

  1. List all CRUD methods across different entities
  2. Check for naming consistency (get vs fetch vs retrieve)
  3. Check for return type consistency (nullable vs exceptions)
  4. Document inconsistencies and propose a unified pattern

Exercise 5: Error Message Review

Intentionally misuse five interfaces in your codebase:

  1. Call with wrong types
  2. Call with invalid values
  3. Omit required parameters

Rate each error message: Does it answer "What went wrong?", "Why?", and "How do I fix it?"


These exercises build intuition for digestible design. Over time, you'll find yourself naturally creating interfaces that are easy for both humans and AI agents to understand and use correctly.