Book description
Architect and design highly scalable, robust, clean, and highly performant applications in Python
About This Book
Identify design issues and make the necessary adjustments to achieve improved performance
Understand practical architectural quality attributes from the perspective of a practicing engineer and architect using Python
Gain knowledge of architectural principles and how they can be used to provide accountability and rationale for architectural decisions
Who This Book Is For
This book is for experienced Python developers who are aspiring to become the architects of enterprise-grade applications or software architects who would like to leverage Python to create effective blueprints of applications.
What You Will Learn
Build programs with the right architectural attributes
Use Enterprise Architectural Patterns to solve scalable problems on the Web
Understand design patterns from a Python perspective
Optimize the performance testing tools in Python
Deploy code in remote environments or on the Cloud using Python
Secure architecture applications in Python
In Detail
This book starts off by explaining how Python fits into an application architecture. As you move along, you will understand the architecturally significant demands and how to determine them. Later, you’ll get a complete understanding of the different architectural quality requirements that help an architect to build a product that satisfies business needs, such as maintainability/reusability, testability, scalability, performance, usability, and security.
You will use various techniques such as incorporating DevOps, Continuous Integration, and more to make your application robust. You will understand when and when not to use object orientation in your applications. You will be able to think of the future and design applications that can scale proportionally to the growing business.
The focus is on building the business logic based on the business process documentation and which frameworks are to be used when. We also cover some important patterns that are to be taken into account while solving design problems as well as those in relatively new domains such as the Cloud.
This book will help you understand the ins and outs of Python so that you can make those critical design decisions that not just live up to but also surpass the expectations of your clients.
Style and approach
Filled with examples and use cases, this guide takes a no-nonsense approach to help you with everything it takes to become a successful software architect.
Table of contents
-
Software Architecture with Python
- Table of Contents
- Software Architecture with Python
- Credits
- About the Author
- About the Reviewer
- www.PacktPub.com
- Customer Feedback
- Preface
-
1. Principles of Software Architecture
- Defining software architecture
-
Characteristics of software architecture
- An architecture defines a structure
- An architecture picks a core set of elements
- An architecture captures early design decisions
- An architecture manages stakeholder requirements
- An architecture influences the organizational structure
- An architecture is influenced by its environment
- An architecture documents the system
- An architecture often conforms to a pattern
- Importance of software architecture
- System versus enterprise architecture
- Architectural quality attributes
- Summary
- 2. Writing Modifiable and Readable Code
- 3. Testability – Writing Testable Code
-
4. Good Performance is Rewarding!
- What is performance?
- Software performance engineering
- Performance testing and measurement tools
- Performance complexity
- Measuring performance
- Profiling
- Other tools
- Programming for performance – data structures
- Summary
-
5. Writing Applications that Scale
- Scalability and performance
- Concurrency
- Thumbnail generator
- Multithreading – Python and GIL
- Multithreading versus multiprocessing
- Pre-emptive versus cooperative multitasking
- The asyncio module in Python
- Waiting for a future – async and await
- Concurrent futures – high-level concurrent processing
- Scaling for the web
- Scaling workflows – message queues and task queues
- Celery – a distributed task queue
- Summary
- 6. Security – Writing Secure Code
- 7. Design Patterns in Python
- 8. Python – Architectural Patterns
-
9. Deploying Python Applications
- Deployability
- Tiers of software deployment architecture
- Software deployment in Python
- Deployment – patterns and best practices
- Summary
-
10. Techniques for Debugging
- Maximum subarray problem
- Simple debugging tricks and techniques
- Logging as a debugging technique
- Debugging tools – using debuggers
- Advanced debugging – tracing
- Summary
- Index
Product information
- Title: Software Architecture with Python
- Author(s):
- Release date: April 2017
- Publisher(s): Packt Publishing
- ISBN: 9781786468529
You might also like
book
Architecture Patterns with Python
As Python continues to grow in popularity, projects are becoming larger and more complex. Many Python …
book
Python Architecture Patterns
Make the best of your test suites by using cutting-edge software architecture patterns in Python Key …
book
Test-Driven Development with Python, 2nd Edition
By taking you through the development of a real web application from beginning to end, the …
book
Using Asyncio in Python
If you’re among the Python developers put off by asyncio’s complexity, it’s time to take another …