Knowledg

Advanced Python: Best Practices and Design Patterns - Online

In this training course, you learn to implement Gang of Four (GoF) design patterns in order to solve commonly recurring, real-world software design programs, thereby avoiding pitfalls and greatly improving the effectiveness of your programming efforts.

Interfacing with REST Web Services and Clients

Python REST web services Building a REST service Generating JSON responses to support Ajax clients Python REST clients Sending REST requests from a Python client Consuming JSON and XML response data

Object-Oriented Programming in Python

Extending classes to define subclasses Inheriting from multiple superclasses and mix-in classes Adding properties to a class Defining abstract base classes

Session

Verifying Code and Unit Testing Testing best practices Developing and running Python unit tests Simplifying automated testing with the Nose package Verifying code behavior Mocking dependent objects with the Mock package Asserting correct code behavior with MagicMock

Session

Detecting Errors and Debugging Techniques Identifying errors Logging messages for auditing and debugging Checking your code for potential bugs with Pylint Debugging Python code Extracting error information from exceptions Tracing program execution with the PyCharm IDE

Session

Implementing Python Design Patterns Structural patterns Implementing the Decorator pattern using @decorator Controlling access to an object with the Proxy pattern Behavioral patterns Utilizing the Iterator pattern with Python generators Laying out a skeleton algorithm in the Template Method pattern Enabling loose coupling between classes with the Observer pattern

Session

Measuring and Improving Application Performance Measuring Application Execution Timing execution of functions with the timeit module Profiling program execution using cProfile Manipulating an execution profile interactively with pstats Employing Python language features for performance Efficiently applying data structures, including lists, dictionaries and tuples Mapping and filtering data sets using comprehensions Replacing the standard Python interpreter with PyPy

Session

Installing and Distributing Modules Managing module versions Installing modules from the PyPi repository using pip Porting code between Python versions Packaging Python modules and applications Establishing isolated Python environments with virtualenv Building a distribution package with setuptools Uploading your Python modules to a local repository

Session

Concurrent Execution Lightweight threads Creating and managing multiple threads of control with the Thread class Synchronizing threads using locks Heavy-weight processes Launching operating system commands as subprocesses Synchronizing processes with queues Parallelizing execution using process pools and Executors

Session

Exploring Python Features Writing Pythonic code Customizing iteration and indexing with magic methods Modifying code dynamically with monkey patching Handling Exceptions Raising user-defined exceptions Reducing code complexity with context managers and the with statement