Software Architecture with Python

A comprehensive training to design high-performance applications with Python.

(SOFTWARE-ARC-PYTHON.AJ1) / ISBN : 978-1-64459-218-2
This course includes
Interactive Lessons
Gamified TestPrep
Hands-On Labs
AI Tutor (Add-on)
193 Reviews
Get A Free Trial

About This Course

Software Architecture with Python is an extensive training course that equips you with the skills to develop high-quality software applications using Python. The detailed course content covers everything from foundational concepts to advanced architectural patterns. You’ll begin with core fundamentals of software architecture like system and enterprise architecture, and design principles. By the end of this Python Architecture course, you’ll learn how to write clean, maintainable, and scalable codes.

Skills You’ll Get

  • Understanding of the basic syntax and semantics: data types, operators, control flow statements, and more.
  • Expertise with OOP concepts: classes, objects, inheritance, and more
  • Organizing codes, working with file I/O & handling errors 
  • knowledge of Software Architecture fundamentals: modularity, cohesion, coupling, and more
  • Ability to apply common design patterns & architectural patterns
  • Optimize performance using profiling tools, algorithms & asynchronous programming
  • Using multithreading and multiprocessing to optimize resources
  • Knowledge of security best practices, cryptographic techniques & secure coding practices
  • Conduct unit tests to verify the performance of individual codes
  • Knowledge of debugging techniques to identity and fix errors
  • Expertise with deployment strategies, deployment tools & DevOps practices

1

Preface

  • What this course covers
  • Conventions
2

Principles of Software Architecture

  • Defining software architecture
  • Characteristics of software architecture
  • Importance of software architecture
  • System versus enterprise architecture
  • Architectural quality attributes
  • Summary
3

Writing Modifiable and Readable Code

  • What is modifiability?
  • Aspects related to modifiability
  • Understanding readability
  • Fundamentals of modifiability – cohesion and coupling
  • Exploring strategies for modifiability
  • Metrics – tools for static analysis
  • Refactoring code
  • Summary
4

Testability – Writing Testable Code

  • Understanding testability
  • White-box testing principles
  • Summary
5

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
6

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
7

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
8

Design Patterns in Python

  • Design patterns – elements
  • Categories of design patterns
  • Patterns in Python – creational
  • Patterns in Python – structural
  • Patterns in Python – behavioral
  • Summary
9

Python – Architectural Patterns

  • Introducing MVC
  • Event-driven programming
  • Microservice architecture
  • Pipe and Filter architectures
  • Summary
10

Deploying Python Applications

  • Deployability
  • Tiers of software deployment architecture
  • Software deployment in Python
  • Deployment – patterns and best practices
  • Summary
11

Techniques for Debugging

  • Maximum subarray problem
  • Simple debugging tricks and techniques
  • Logging as a debugging technique
  • Debugging tools – using debuggers
  • Advanced debugging – tracing
  • Summary
-

Appendix - A

  • Installing Python
  • Running Python
  • Basic syntax
  • Conditional statements and loops
  • Data structures
  • Functions
  • Summary
-

Appendix - B

  • Object-oriented programming
  • Modules and packages
  • File operations
  • Error and exception handling
  • Summary

1

Writing Modifiable and Readable Code

  • Documenting the Code
  • Understanding the Concept of Cohesion
  • Finding the McCabe Metric
  • Running a Static Checker
  • Fixing Code Smells by Refactoring the Code
  • Fixing Code Complexity by Refactoring the Code
2

Testability – Writing Testable Code

  • Measuring Code Coverage
  • Unit Testing a Module
  • Using Test-Driven Development
  • Unit Testing Using doctest
3

Good Performance is Rewarding!

  • Measuring the Performance of Code Using timeit
  • Collecting and Reporting Statistics
  • Profiling with cProfile
  • Implementing an LRU Cache Dictionary
4

Writing Applications that Scale

  • Using the Multiprocessing Pool Object
  • Creating a Co-operative Multitasking Scheduler Using Simple Python Generators
  • Using the asyncio Module
  • Using async and await
  • Using the concurrent.futures Module
5

Security – Writing Secure Code

  • Serializing an object using code jail
  • Making the Code Secure for Input
6

Techniques for Debugging

  • Debugging Maximum Subarray Problem
  • Generating Random Patient Data Using the schematics Library
  • Debugging the Word Searcher Program
  • Creating a Log File Using Logger Objects
  • Creating a Simple Log File
  • Debugging with pdb

Any questions?
Check out the FAQs

Find out more about our all-inclusive training course ‘Software Architecture with Python’

Contact Us Now

No, you don’t necessarily need to have Python knowledge. However, it is recommended to have prior programming experience.

This Python Architecture course covers several advanced topics like:

  • Design patterns
  • Architectural patterns
  • Concurrency & parallelism
  • Performance profiling & optimization
  • Deployment strategies 
  • DevOps practices

Yes, this course covers some topics of cloud-based development including:

  • Microservices Architecture
  • Deployment & DevOps
  • Performance optimization

No, you don’t need any specific skills to start this course as it covers the fundamentals concepts of software engineering.

Learning this course will give you a competitive edge by making you a highly-sought after professional. With the right knowledge and experience, you can progress towards leadership roles like technical lead or chief architect.

Related Courses

All Course
scroll to top