12
Introduction
This book is organized into lenses
I’ve structured this book around the concept of lenses--dierent
perspectives for understanding and modeling domains. Each
lens oers its own insights, tools, and concepts, helping us un-
cover crucial details and translate them into code. Our ultimate
goal is comprehensive vision: seeing the full design space, from
programming language constraints to business needs, from user
requirements to platform limitations. The more of these ele-
ments you can consider simultaneously, the stronger your design
decisions become.
This approach brings inherent challenges. Many readers have
told me it feels unnatural to focus on a single aspect, like data
modeling, while setting aside related concerns like use cases. It’s
similar to learning graphic design--an eective poster is an in-
tegrated whole of color, contrast, typography, and space, and it
might feel strange to focus on just one element in isolation. This
discomfort reveals a core tension in learning complex skills:
how do we study the parts while knowing they’ll need to work
together? We can’t rely on simple principles, rules of thumb, and
patterns--beginners oen misapply them without recognizing
crucial exceptions. Nor can we follow a prescribed sequence of
steps, as real-world design decisions are too interconnected and
context-dependent.
The solution is to understand these lenses as learning tools
rather than strict guidelines. Just as a graphic designer might
rst master the principles of contrast, then explore color theo-
ry, then study spatial relationships--all while knowing these ele-
ments will ultimately work together--we’ll examine one perspec-
tive at a time. When you’re studying one lens and nd yourself
thinking “but what about...,” take note of that thought. We’ll like-
ly explore it through another lens. Rather than prescribing rules
or processes, I aim to help you see what was previously invisible.
You’ll learn what details to look for, how to evaluate what you nd,
and how to capture those insights in code. The lenses provide the
tools and perspectives. You’ll learn to integrate them into your
design process with experience--just as a skilled graphic design-
er intuitively weaves together their knowledge of color, contrast,
and composition to create a unied whole.