Chapman and Hall/CRC, 2024. — 330 p. — ISBN: 978-1-032-72523-9.
The best way to learn design in any field is to study examples, and some of the best examples of software design come from the
tools programmers use in their own work.
Software Design by Example: A Tool-Based Introduction with Python therefore builds small versions of the things programmers use in order to demystify them and give some insights into how experienced programmers think. From a file backup system and a testing framework to a regular expression matcher, a browser layout engine, and a very small compiler, we explore
common design patterns, show how making
code easier to test also makes it
easier to reuse, and help readers understand how
debuggers, profilers, package managers, and version control systems work so that they can use them
more effectively. This material can be used for self-paced study, in an
undergraduate course on software design, or as the core of an intensive weeklong workshop for working programmers. Each chapter has a set of exercises
ranging in size and difficulty from half a dozen lines to a full day’s work. Readers should be familiar with the basics of
modern Python, but the more advanced features of the language
are explained and illustrated as they are introduced.
Features:Teaches software design by showing programmers how to build the tools they use every day.
Each chapter includes exercises to help readers check and deepen their understanding.
All the example code can be downloaded, re-used, and modified under an open license.