null
Loading... Please wait...
FREE SHIPPING on All Unbranded Items LEARN MORE
Print This Page

Software Design for Python Programmers (Principles and patterns)

List Price: $59.99
SKU:
9781633439498
Quantity:
Minimum Purchase
25 unit(s)
  • Availability: Confirm prior to ordering
  • Branding: minimum 50 pieces (add’l costs below)
  • Check Freight Rates (branded products only)

Branding Options (v), Availability & Lead Times

  • 1-Color Imprint: $2.00 ea.
  • Promo-Page Insert: $2.50 ea. (full-color printed, single-sided page)
  • Belly-Band Wrap: $2.50 ea. (full-color printed)
  • Set-Up Charge: $45 per decoration
FULL DETAILS
  • Availability: Product availability changes daily, so please confirm your quantity is available prior to placing an order.
  • Branded Products: allow 10 business days from proof approval for production. Branding options may be limited or unavailable based on product design or cover artwork.
  • Unbranded Products: allow 3-5 business days for shipping. All Unbranded items receive FREE ground shipping in the US. Inquire for international shipping.
  • RETURNS/CANCELLATIONS: All orders, branded or unbranded, are NON-CANCELLABLE and NON-RETURNABLE once a purchase order has been received.
  • Product Details

    Author:
    Ronald Mak
    Format:
    Paperback
    Pages:
    456
    Publisher:
    Manning (February 17, 2026)
    Imprint:
    Manning
    Language:
    English
    ISBN-13:
    9781633439498
    ISBN-10:
    1633439496
    Weight:
    20.06oz
    Dimensions:
    7.375" x 9.25"
    File:
    Eloquence-SimonSchuster_06162026_P10214303_onix30-20260616.xml
    Folder:
    Eloquence
    List Price:
    $59.99
    Pub Discount:
    37
    As low as:
    $46.19
    Publisher Identifier:
    P-SS
    Discount Code:
    A
  • Overview

    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