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
"synopsis" may belong to another edition of this title.
Ronald Mak is a highly rated instructor in object-oriented analysis and design at San Jose State University. His career has included roles as a senior computer scientist at NASA and JPL, where he contributed to major missions like Mars rovers and the Orion spacecraft. Ronald's expertise spans research at IBM, enterprise software strategy at Lawrence Livermore Lab, and senior roles at Apple and Sun Microsystems. He holds degrees in mathematical sciences and computer science from Stanford University, and has 12 software patents. Object-Oriented Software Design in C++ is his sixth book.
"About this title" may belong to another edition of this title.
Seller: GreatBookPrices, Columbia, MD, U.S.A.
Condition: New. Seller Inventory # 51932655-n
Seller: Chiron Media, Wallingford, United Kingdom
paperback. Condition: New. Brand new book, sourced directly from publisher. Dispatch time is 3-4 days from our warehouse. Book will be sent in robust, secure packaging to ensure it reaches you securely. Seller Inventory # 6666-CBL-9781633439498
Quantity: 2 available
Seller: GreatBookPrices, Columbia, MD, U.S.A.
Condition: As New. Unread book in perfect condition. Seller Inventory # 51932655
Seller: Rarewaves.com USA, London, LONDO, United Kingdom
Hardback. Condition: New. Your Python projects work, yet scaling and maintenance still feel risky. Bug fixes spiral and new features break code you wrote last week. Professional design principles stop churn and keep teams moving with confidence. This book shows proven patterns, clearly explained in plain, modern Python. See messy "before" code refactored into clean, extendable, production-ready modules. Write software that your future self, and your colleagues, will actually love. Iterative requirement analysis: Translate vague needs into precise, testable class responsibilities. Cohesion and coupling metrics: Keep modules focused while collaborating through stable, predictable interfaces. Decorator pattern usage: Enhance behavior without subclass explosions or tangled conditional logic. SOLID principles walkthrough: Spot smells early and refactor confidently before technical debt snowballs. Pythonic pattern catalog: Apply strategy, observer, factory, and more using idiomatic language constructs. Conversation sidebars: Get quick answers to common design questions right when you need them. Software Design for Python Programmers guides you with real-world, field-tested advice. Each chapter starts with flawed "before" code, then iteratively improves it using proven principles. Diagrams, talking-head sidebars, and refactoring checkpoints make every concept stick. Finish able to craft maintainable architectures, write extensible classes, and communicate design choices with authority. Your codebase becomes an asset, not a liability. Ideal for Python developers comfortable with syntax who crave professional-grade software design skills. Seller Inventory # LU-9781633439498
Quantity: 1 available
Seller: PBShop.store UK, Fairford, GLOS, United Kingdom
HRD. Condition: New. New Book. Shipped from UK. Established seller since 2000. Seller Inventory # PB-9781633439498
Quantity: 15 available
Seller: GreatBookPricesUK, Woodford Green, United Kingdom
Condition: New. Seller Inventory # 51932655-n
Quantity: 7 available
Seller: California Books, Miami, FL, U.S.A.
Condition: New. Seller Inventory # I-9781633439498
Seller: Grand Eagle Retail, Bensenville, IL, U.S.A.
Hardcover. Condition: new. Hardcover. Your Python projects work, yet scaling and maintenance still feel risky. Bug fixes spiral and new features break code you wrote last week. Professional design principles stop churn and keep teams moving with confidence. This book shows proven patterns, clearly explained in plain, modern Python. See messy before code refactored into clean, extendable, production-ready modules. Write software that your future self, and your colleagues, will actually love. Iterative requirement analysis: Translate vague needs into precise, testable class responsibilities. Cohesion and coupling metrics: Keep modules focused while collaborating through stable, predictable interfaces. Decorator pattern usage: Enhance behavior without subclass explosions or tangled conditional logic. SOLID principles walkthrough: Spot smells early and refactor confidently before technical debt snowballs. Pythonic pattern catalog: Apply strategy, observer, factory, and more using idiomatic language constructs. Conversation sidebars: Get quick answers to common design questions right when you need them. Software Design for Python Programmers guides you with real-world, field-tested advice. Each chapter starts with flawed before code, then iteratively improves it using proven principles. Diagrams, talking-head sidebars, and refactoring checkpoints make every concept stick. Finish able to craft maintainable architectures, write extensible classes, and communicate design choices with authority. Your codebase becomes an asset, not a liability. Ideal for Python developers comfortable with syntax who crave professional-grade software design skills. Great Python applications take advantage of established design principles and patterns that maximize performance, maintainability, and reliability. Software Design for Python Programmers shows you how to build on your Python coding skills by mastering the practices of great software design! Shipping may be from multiple locations in the US or from the UK, depending on stock availability. Seller Inventory # 9781633439498
Seller: Majestic Books, Hounslow, United Kingdom
Condition: New. Seller Inventory # 408248465
Quantity: 3 available
Seller: Rarewaves USA, HEBRON, KY, U.S.A.
Hardback. Condition: New. Your Python projects work, yet scaling and maintenance still feel risky. Bug fixes spiral and new features break code you wrote last week. Professional design principles stop churn and keep teams moving with confidence. This book shows proven patterns, clearly explained in plain, modern Python. See messy "before" code refactored into clean, extendable, production-ready modules. Write software that your future self, and your colleagues, will actually love. Iterative requirement analysis: Translate vague needs into precise, testable class responsibilities. Cohesion and coupling metrics: Keep modules focused while collaborating through stable, predictable interfaces. Decorator pattern usage: Enhance behavior without subclass explosions or tangled conditional logic. SOLID principles walkthrough: Spot smells early and refactor confidently before technical debt snowballs. Pythonic pattern catalog: Apply strategy, observer, factory, and more using idiomatic language constructs. Conversation sidebars: Get quick answers to common design questions right when you need them. Software Design for Python Programmers guides you with real-world, field-tested advice. Each chapter starts with flawed "before" code, then iteratively improves it using proven principles. Diagrams, talking-head sidebars, and refactoring checkpoints make every concept stick. Finish able to craft maintainable architectures, write extensible classes, and communicate design choices with authority. Your codebase becomes an asset, not a liability. Ideal for Python developers comfortable with syntax who crave professional-grade software design skills. Seller Inventory # LU-9781633439498