Software Design for Python Programmers

Software Design for Python Programmers

by Ronald Mak
Epub (Kobo), Epub (Adobe)
Publication Date: 24/02/2026

Share This eBook:

  $44.99

Software Design for Python Programmers 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

ISBN:
9781638357834
9781638357834
Category:
Web programming
Format:
Epub (Kobo), Epub (Adobe)
Publication Date:
24-02-2026
Language:
English
Publisher:
Manning

This item is delivered digitally

Reviews

Be the first to review Software Design for Python Programmers.