Software Design by Example (Python edition) Now in Beta
The first beta version of [Software Design by Example: a Tool-Based Introduction with Python][sdxpy] is now available at https://third-bit.com/sdxpy/. It presents and explains small working models of two dozen different tools that developers use on a daily basis in order to show how experienced software designers think. All of the material is free to use under the CC-BY-NC and Hippocratic licenses, and I would be very grateful for feedback and fixes. It’s a long way from being done (not that any tutorial is every really “done”) but I hope it’s useful. My thanks to everyone listed in https://third-bit.com/sdxpy/intro/ for the tools they’ve built and shared and the feedback they’ve already given.
Use what you have.
Help who you can.
Note: red shows metrics that are under target (e.g., chapters that are too short), while blue shows ones that are over (e.g., slideshows with too many slides to fit into an hour).
Title | Slides | Words | Sections | Exercises | Figures | Syllabus | Index | Glossary |
---|---|---|---|---|---|---|---|---|
intro | 11 | 1324 | 7 | 2 | 2 | 4 | 3 | 0 |
oop | 18 | 1200 | 5 | 4 | 4 | 6 | 11 | 9 |
dup | 20 | 1820 | 5 | 5 | 5 | 5 | 2 | 10 |
glob | 23 | 1813 | 4 | 8 | 4 | 6 | 1 | 14 |
parse | 16 | 1352 | 4 | 5 | 3 | 7 | 5 | 12 |
test | 17 | 1958 | 5 | 7 | 4 | 4 | 9 | 14 |
interp | 17 | 2036 | 5 | 8 | 3 | 6 | 10 | 15 |
func | 20 | 1433 | 5 | 4 | 3 | 7 | 6 | 13 |
reflect | 20 | 1971 | 6 | 4 | 3 | 7 | 10 | 7 |
archive | 20 | 2182 | 6 | 7 | 3 | 5 | 14 | 14 |
check | 21 | 1545 | 5 | 6 | 3 | 5 | 12 | 13 |
template | 24 | 2260 | 7 | 10 | 3 | 4 | 20 | 6 |
lint | 21 | 2234 | 6 | 7 | 3 | 4 | 16 | 3 |
layout | 18 | 2295 | 6 | 10 | 7 | 5 | 15 | 9 |
perf | 23 | 3265 | 6 | 11 | 8 | 4 | 17 | 14 |
persist | 16 | 3252 | 6 | 10 | 4 | 5 | 14 | 7 |
binary | 26 | 3900 | 6 | 6 | 4 | 5 | 6 | 20 |
db | 26 | 2254 | 8 | 4 | 4 | 5 | 11 | 7 |
build | 19 | 1836 | 5 | 8 | 4 | 5 | 12 | 17 |
pack | 24 | 2926 | 7 | 8 | 4 | 7 | 11 | 11 |
ftp | 20 | 1821 | 5 | 4 | 3 | 4 | 6 | 10 |
http | 19 | 2273 | 5 | 9 | 3 | 5 | 14 | 12 |
viewer | 33 | 2982 | 7 | 4 | 2 | 7 | 9 | 8 |
undo | 21 | 1392 | 5 | 5 | 1 | 4 | 7 | 3 |
vm | 20 | 2249 | 6 | 10 | 6 | 4 | 7 | 13 |
debugger | 22 | 2820 | 6 | 10 | 4 | 4 | 9 | 7 |
finale | 4 | 582 | 0 | 0 | 1 | 0 | 4 | 0 |
--- | --- | --- | --- | --- | --- | --- | --- | --- |
Target | 15-26 | 1300-2300 | 2-8 | 4-14 | 3-8 | 4-8 | ||
Average | 2110 | 20.0 | 5.5 | 6.5 | 3.6 | 5.0 | 9.7 | 9.9 |
Total | 539 | 56975 | 148 | 176 | 98 | 134 | 261 | 268 |