DV-CEIS420.AJ1
Software Architecture with Python
Intermediate Self-paced · 1 year access
28 Hands-On LiveLabs
Practice real IT tasks in guided environments.
- Real environments
- Auto-graded
- No installation
01 / Lessons & labs
See exactly what you will learn and practice
Lessons
12 Interactive Lessons · 81 topics01 Principles of Software Architecture 6 topics +
- Defining software architecture
- Characteristics of software architecture
- Importance of software architecture
- System versus enterprise architecture
- Architectural quality attributes
- Summary
02 Writing Modifiable and Readable Code 8 topics · 6 LiveLab +
- 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
6 LiveLab in this lesson — see the labs panel →
03 Testability – Writing Testable Code 3 topics · 4 LiveLab +
- Understanding testability
- White-box testing principles
- Summary
4 LiveLab in this lesson — see the labs panel →
04 Good Performance is Rewarding! 9 topics · 4 LiveLab +
- What is performance?
- Software performance engineering
- Performance testing and measurement tools
- Performance complexity
- Measuring performance
- Profiling
- Other tools
- Programming for performance – data structures
- Summary
4 LiveLab in this lesson — see the labs panel →
05 Writing Applications that Scale 13 topics · 5 LiveLab +
- 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
5 LiveLab in this lesson — see the labs panel →
06 Security – Writing Secure Code 8 topics · 2 LiveLab +
- Information security architecture
- Secure coding
- Common security vulnerabilities
- Is Python secure?
- Security issues with web applications
- Strategies for security – Python
- Secure coding strategies
- Summary
2 LiveLab in this lesson — see the labs panel →
07 Design Patterns in Python 6 topics +
- Design patterns – elements
- Categories of design patterns
- Patterns in Python – creational
- Patterns in Python – structural
- Patterns in Python – behavioral
- Summary
08 Python – Architectural Patterns 5 topics · 1 LiveLab +
- Introducing MVC
- Event-driven programming
- Microservice architecture
- Pipe and Filter architectures
- Summary
1 LiveLab in this lesson — see the labs panel →
09 Deploying Python Applications 5 topics +
- Deployability
- Tiers of software deployment architecture
- Software deployment in Python
- Deployment – patterns and best practices
- Summary
10 Techniques for Debugging 6 topics · 6 LiveLab +
- Maximum subarray problem
- Simple debugging tricks and techniques
- Logging as a debugging technique
- Debugging tools – using debuggers
- Advanced debugging – tracing
- Summary
6 LiveLab in this lesson — see the labs panel →
11 Appendix - A 7 topics +
- Installing Python
- Running Python
- Basic syntax
- Conditional statements and loops
- Data structures
- Functions
- Summary
12 Appendix - B 5 topics +
- Object-oriented programming
- Modules and packages
- File operations
- Error and exception handling
- Summary
Hands-On Labs Our edge
28 LiveLabs- 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
- Measuring Code Coverage
- Unit Testing a Module
- Using Test-Driven Development
- Unit Testing Using doctest
- Measuring the Performance of Code Using timeit
- Collecting and Reporting Statistics
- Profiling with cProfile
- Implementing an LRU Cache Dictionary
- 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
- Serializing an object using code jail
- Making the Code Secure for Input
- Creating an Iterator Pattern
- 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
Labs run in your browser — nothing to install.
02 / FAQs
Questions before you start
Prepare for Software Architecture with Python
One-time payment. Full access for 1 year. Start with a free trial if you want to look around first.
- 1 year of full access
- 28 LiveLab included
- Certificate of completion
No credit card required