Software Architecture with Python

Architect and design highly scalable, robust, clean, and highly performant applications in Python

Software Architecture with Python

This ebook is included in a Mapt subscription
Anand Balachandran Pillai

Architect and design highly scalable, robust, clean, and highly performant applications in Python
$16.00
$49.99
RRP $39.99
RRP $49.99
eBook
Print + eBook
Subscribe and access every Packt eBook & Video.
 
  • 4,000+ eBooks & Videos
  • 40+ New titles a month
  • 1 Free eBook/Video to keep every month
Start Free Trial
 
Preview in Mapt

Book Details

ISBN 139781786468529
Paperback556 pages

Book Description

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.

Table of Contents

Chapter 1: Principles of Software Architecture
Defining Software Architecture
Characteristics of Software Architecture
Importance of Software Architecture
System versus enterprise architecture
Architectural quality attributes
Summary
Chapter 2: Writing Modifiable and Readable Code
What is modifiability?
Aspects related to Modifiability
Understanding readability
Fundamentals of Modifiability – Cohesion & Coupling
Exploring strategies for modifiability
Metrics – tools for static analysis
Refactoring Code
Summary
Chapter 3: Testability – Writing Testable Code
Understanding testability
White-box testing principles
Chapter 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
Chapter 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
Chapter 6: Security – Writing Secure Code
Information Security architecture
Secure coding
Common security vulnerabilities
Is Python secure?
Security issues with web applications
Strategies for security – Python
Secure coding strategies
Summary
Chapter 7: Design Patterns in Python
Design patterns - Elements
Categories of design patterns
Patterns in Python – Creational
Patterns in Python – Structural
Patterns in Python – Behavioral
Summary
Chapter 8: Python – Architectural Patterns
Introducing MVC
Event-driven programming
Microservice architecture
Pipe and Filter architectures
Summary
Chapter 9: Deploying Python Applications
Deployability
Tiers of software deployment architecture
Software deployment in Python
Deployment – patterns and best practices
Summary
Chapter 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

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

Authors

Table of Contents

Chapter 1: Principles of Software Architecture
Defining Software Architecture
Characteristics of Software Architecture
Importance of Software Architecture
System versus enterprise architecture
Architectural quality attributes
Summary
Chapter 2: Writing Modifiable and Readable Code
What is modifiability?
Aspects related to Modifiability
Understanding readability
Fundamentals of Modifiability – Cohesion & Coupling
Exploring strategies for modifiability
Metrics – tools for static analysis
Refactoring Code
Summary
Chapter 3: Testability – Writing Testable Code
Understanding testability
White-box testing principles
Chapter 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
Chapter 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
Chapter 6: Security – Writing Secure Code
Information Security architecture
Secure coding
Common security vulnerabilities
Is Python secure?
Security issues with web applications
Strategies for security – Python
Secure coding strategies
Summary
Chapter 7: Design Patterns in Python
Design patterns - Elements
Categories of design patterns
Patterns in Python – Creational
Patterns in Python – Structural
Patterns in Python – Behavioral
Summary
Chapter 8: Python – Architectural Patterns
Introducing MVC
Event-driven programming
Microservice architecture
Pipe and Filter architectures
Summary
Chapter 9: Deploying Python Applications
Deployability
Tiers of software deployment architecture
Software deployment in Python
Deployment – patterns and best practices
Summary
Chapter 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

Book Details

ISBN 139781786468529
Paperback556 pages
Read More

Read More Reviews