

Price:
(as of – Details)
Get a free eBook (PDF or ePub) from Manning as well as access to the online liveBook format (and its AI assistant that will answer your questions in any language) when you purchase the print book.
This book shows you how to level up from writing Python code to designing Python applications. Following intuitive “before” and “after” examples of improved code, you’ll learn to plan and execute Python applications effectively and avoid bugs associated with unmanaged state, poorly-formed classes, inflexible functions, and more.
Great applications take advantage of established design principles and patterns that maximize performance, maintainability, and reliability. This book helps you master the “Pythonic” approach to architectural principles, such as encapsulation, abstraction, method variation, and more. The examples are in Python, but the techniques will apply to any object-oriented language.
In Software Design for Python Programmers, you’ll learn to:
• Analyze requirements and plan application architecture
• Evolve designs through iterative development
• Shape Python classes with high cohesion and loose coupling
• Use decorators to introduce abstraction, enforce constraints, and enrich behavior
• Apply industry-standard design principles to keep code modular and maintainable
• Choose and implement the right design patterns for complex challenges
About the Technology
Great software starts with thoughtful design. You’ll be a more effective developer if you can decide how data will
flow through your applications, create a winning software architecture, and structure functions, classes, and modules before you write a line of code. This book will get you started!
About the Book
Software Design for Python Programmers is a practical guide for creating maintainable, well-structured software in Python. By investigating clear “before and after” examples, you’ll discover how even small design choices can have a huge impact on an application’s clarity and reliability. As you go, you’ll learn how to gather requirements, shape a program’s architecture iteratively, create clean and reusable abstractions, and select design patterns that solve the real problems you’ll face on the job.
What’s Inside
• Turn vague requirements into solid designs
• Python-specific software design techniques
• Create classes with high cohesion and loose coupling
About the Readers
For programmers comfortable with Python syntax.
About the Author
Ronald Mak is a former NASA senior scientist. Currently, he teaches data science and computer science at San Jose State University. He is the author of Object-Oriented Software Design in C++.
Table of Contents
Part 1
1 The path to well-designed software
2 Iterate to achieve good design
Part 2
3 Get requirements to build the right application
4 Good class design to build the application right
Part 3
5 Hide class implementations
6 Don’t surprise your users
7 Design subclasses right
Part 4
8 The Template Method and Strategy Design Patterns
9 The Factory Method and Abstract Factory Design Patterns
10 The Adapter and Façade Design Patterns
11 The Iterator and Visitor Design Patterns
12 The Observer Design Pattern
13 The State Design Pattern
14 The Singleton, Composite, and Decorator Design Patterns
Part 5
15 Designing solutions with recursion and backtracking
16 Designing multithreaded programs
From the Publisher


“Highly informative—not just for beginners, but also for working professionals.”
Natasha Kulkarni, Oracle

“Clear explanations, practical examples, and the focus on real-world application development.”
Shantanu Kumar, Amazon

“Quite literally a career-changer.”
Robert Nicholson, Independent Consultant

why this book?
Software Design for Python Programmers teaches you how to apply solid object-oriented design principles and industry-proven patterns to your Python code, so your applications become easier to maintain, extend, and debug.
The book uses clear “before” and “after” code examples in plain Python to show how design decisions shape real software, making abstract concepts concrete and practical.
It bridges the gap between knowing Python syntax and thinking like a software architect, helping you write systems that stand up to real-world complexity and future changes.

about Manning
Manning helps developers and tech professionals stay ahead in a fast-moving industry with expert-led books, videos, and projects. Learning never stops, but it’s hard to keep up, so we focus on content that’s practical, clear, and trusted. As an independent publisher, we adapt quickly, from pioneering early-access books to offering DRM-free eBooks. Our series, like “In Action” and “In a Month of Lunches”, reflect a commitment to making complex topics accessible.
Add to Cart
Add to Cart
Add to Cart
Add to Cart
Add to Cart
Add to Cart
Customer Reviews
5.0 out of 5 stars 14
3.9 out of 5 stars 5
4.2 out of 5 stars 15
4.5 out of 5 stars 23
5.0 out of 5 stars 7
4.8 out of 5 stars 12
Price
$47.49$47.49 $43.47$43.47 $41.99$41.99 $73.01$73.01 $53.21$53.21 $49.44$49.44
Level of proficiency
Intermediate Intermediate Intermediate Intermediate Intermediate Advanced
About the reader
For beginning to intermediate Python programmers. For developers who know Python. For beginning-intermediate programmers. For readers with intermediate Python skills. For Python programmers familiar with tools like pandas and NumPy, and the basics of statistics. For Python programmers and data analysts.
Special features
Includes liveBook with out built-in AI assistant. Includes liveBook with out built-in AI assistant. Includes liveBook with out built-in AI assistant. Includes liveBook with out built-in AI assistant. Includes liveBook with out built-in AI assistant. Includes liveBook with out built-in AI assistant.
Pages
240 376 384 648 560 440
Publisher : Manning Publications
Publication date : February 17, 2026
Language : English
Print length : 456 pages
ISBN-10 : 1633439496
ISBN-13 : 978-1633439498
Item Weight : 1.2 pounds
Dimensions : 7.38 x 1.14 x 9.25 inches
Best Sellers Rank: #382,549 in Books (See Top 100 in Books) #33 in Object-Oriented Design #33 in Computer Systems Analysis & Design (Books) #106 in Python Programming
Customer Reviews: 5.0 5.0 out of 5 stars (6) var dpAcrHasRegisteredArcLinkClickAction; P.when(‘A’, ‘ready’).execute(function(A) { if (dpAcrHasRegisteredArcLinkClickAction !== true) { dpAcrHasRegisteredArcLinkClickAction = true; A.declarative( ‘acrLink-click-metrics’, ‘click’, { “allowLinkDefault”: true }, function (event) { if (window.ue) { ue.count(“acrLinkClickCount”, (ue.count(“acrLinkClickCount”) || 0) + 1); } } ); } }); P.when(‘A’, ‘cf’).execute(function(A) { A.declarative(‘acrStarsLink-click-metrics’, ‘click’, { “allowLinkDefault” : true }, function(event){ if(window.ue) { ue.count(“acrStarsLinkWithPopoverClickCount”, (ue.count(“acrStarsLinkWithPopoverClickCount”) || 0) + 1); } }); });


