{"product_id":"software-design-for-python-programmers-principles-and-patterns-9781633439498","title":"Software Design for Python Programmers: Principles and Patterns","description":"\u003cb\u003eGet 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.\u003c\/b\u003e \u003cp\u003e\u003c\/p\u003eThis 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. \u003cp\u003e\u003c\/p\u003e 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. \u003cp\u003e\u003c\/p\u003e In \u003ci\u003eSoftware Design for Python Programmers\u003c\/i\u003e, you'll learn to: \u003cp\u003e\u003c\/p\u003e - Analyze requirements and plan application architecture\u003cbr\u003e - Evolve designs through iterative development\u003cbr\u003e - Shape Python classes with high cohesion and loose coupling\u003cbr\u003e - Use decorators to introduce abstraction, enforce constraints, and enrich behavior\u003cbr\u003e - Apply industry-standard design principles to keep code modular and maintainable\u003cbr\u003e - Choose and implement the right design patterns for complex challenges \u003cp\u003e\u003c\/p\u003e \u003cb\u003eAbout the Technology\u003c\/b\u003e \u003cp\u003e\u003c\/p\u003e Great software starts with thoughtful design. You'll be a more effective developer if you can decide how data will \u003cp\u003e\u003c\/p\u003e 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! \u003cp\u003e\u003c\/p\u003e \u003cb\u003eAbout the Book\u003c\/b\u003e \u003cp\u003e\u003c\/p\u003e \u003ci\u003eSoftware Design for Python Programmers\u003c\/i\u003e 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. \u003cp\u003e\u003c\/p\u003e \u003cb\u003eWhat's Inside\u003c\/b\u003e \u003cp\u003e\u003c\/p\u003e - Turn vague requirements into solid designs\u003cbr\u003e - Python-specific software design techniques\u003cbr\u003e - Create classes with high cohesion and loose coupling \u003cp\u003e\u003c\/p\u003e \u003cb\u003eAbout the Readers\u003c\/b\u003e \u003cp\u003e\u003c\/p\u003e For programmers comfortable with Python syntax. \u003cp\u003e\u003c\/p\u003e \u003cb\u003eAbout the Author\u003c\/b\u003e \u003cp\u003e\u003c\/p\u003e \u003cb\u003eRonald Mak\u003c\/b\u003e is a former NASA senior scientist. Currently, he teaches data science and computer science at San Jose State University. He is the author of \u003ci\u003eObject-Oriented Software Design in C++\u003c\/i\u003e. \u003cp\u003e\u003c\/p\u003e \u003cb\u003eTable of Contents\u003c\/b\u003e \u003cp\u003e\u003c\/p\u003e Part 1\u003cbr\u003e 1 The path to well-designed software\u003cbr\u003e 2 Iterate to achieve good design\u003cbr\u003e Part 2\u003cbr\u003e 3 Get requirements to build the right application\u003cbr\u003e 4 Good class design to build the application right\u003cbr\u003e Part 3\u003cbr\u003e 5 Hide class implementations\u003cbr\u003e 6 Don't surprise your users\u003cbr\u003e 7 Design subclasses right\u003cbr\u003e Part 4\u003cbr\u003e 8 The Template Method and Strategy Design Patterns\u003cbr\u003e 9 The Factory Method and Abstract Factory Design Patterns\u003cbr\u003e 10 The Adapter and Façade Design Patterns\u003cbr\u003e 11 The Iterator and Visitor Design Patterns\u003cbr\u003e 12 The Observer Design Pattern\u003cbr\u003e 13 The State Design Pattern\u003cbr\u003e 14 The Singleton, Composite, and Decorator Design Patterns\u003cbr\u003e Part 5\u003cbr\u003e 15 Designing solutions with recursion and backtracking\u003cbr\u003e 16 Designing multithreaded programs\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eAbout the Author\u003c\/b\u003e\u003cbr\u003e\u003cb\u003eRonald Mak\u003c\/b\u003e 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.\u003cbr\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":52033882849554,"sku":"9781633439498","price":59.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0831\/4771\/8930\/files\/img_a53d3e8c-e050-4a32-b1e5-adb931ae98de.jpg?v=1770976604","url":"https:\/\/surprise-castle.myshopify.com\/products\/software-design-for-python-programmers-principles-and-patterns-9781633439498","provider":"Surprise Castle","version":"1.0","type":"link"}