
- 342 pages
- English
- ePUB (mobile friendly)
- Available on iOS & Android
About this book
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.
All the written material in this project can be freely reused under the terms of the Creative Commons - Attribution license, while all of the software is made available under the terms of the Hippocratic License. All proceeds from sale of this book will go to support the Red Door Family Shelter in Toronto.
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
Frequently asked questions
- Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
- Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Information
Table of contents
- Cover Page
- Half-Title Page
- Title Page
- Copyright Page
- Dedication Page
- Contents
- 1 Introduction
- 2 Objects and Classes
- 3 Finding Duplicate Files
- 4 Matching Patterns
- 5 Parsing Text
- 6 Running Tests
- 7 An Interpreter
- 8 Functions and Closures
- 9 Protocols
- 10 A File Archiver
- 11 An HTML Validator
- 12 A Template Expander
- 13 A Code Linter
- 14 Page Layout
- 15 Performance Profiling
- 16 Object Persistence
- 17 Binary Data
- 18 A Database
- 19 A Build Manager
- 20 A Package Manager
- 21 Transferring Files
- 22 Serving Web Pages
- 23 A File Viewer
- 24 Undo and Redo
- 25 A Virtual Machine
- 26 A Debugger
- 27 Conclusion
- A Bibliography
- B Bonus Material
- C Syllabus
- D License
- E Code of Conduct
- F Contributing
- G Glossary
- Index