This video starts off by defining scalability and Concurrency. Their relationship and effects on performance attributes. We will also look at Celery which is a very important aspect of python.
Then we will move to security aspects of Python and find out whether it is secured or not.
Finally, we will look at design patterns that are creational, structural and behavioural patterns.
This video will help you understand the inns and outs of Python so that you can make those critical design decisions that are just live up to but also surpass the expectations of your clients.
About the author
Anand Balachandran Pillai is an Engineering and Technology professional with over 18 years of experience in the software industry in Product Engineering, Software Design & Architecture and Research.
He has worked at companies such as Yahoo!, McAfee, and Infosys in the roles of Lead Engineer and Architect in product development teams, to build new products.
He is the founder of the Bangalore Python Users Group and a Fellow of the Python Software Foundation (PSF).
Anand is currently working as Senior Architect of Yegii Inc.
How do we measure the scalability of a system? This would be answered in this section.
Multi-threading in Python is used to generate thumbnails of image URLs.
In Python there is, a global lock that prevents multiple threads from executing native bytecode at once. This lock is required, since the memory management of CPython (the native implementation of Python) is not thread-safe.
After understanding Multi-processing, it is a good time to compare and contrast the scenarios where one needs to choose between scaling using threads in a single process or using multiple processes in Python.
The concurrent.futures module provides high-level concurrent processing using either threads or processes, while asynchronously returning data using future objects. It provides an executor interface which exposes mainly two methods, submit and map.
Celery is a distributed task queue written in Python, which works using distributed messages. Each execution unit in celery is called a task. A task can be executed concurrently on one or more servers using processes called workers. By default, celery achieves this using multiprocessing, but it can also use other backend such as gevent.
Secure coding is the practice of software development that guards programs against security vulnerabilities, and makes it resistant to malicious attacks right from program design to implementation. It is about writing code that is inherently secure as opposed to thinking of security as a layer which is added on later.
Python is a very readable language with simple syntax, and typically, one clearly stated way to do things. It comes with a set of well-tested and compact standard library modules. All of this seems to indicate that Python should be a very secure language.
It is likely that python is exposed to security issues in applications such as Django, Flask, Pyramid, and others due to interaction with web applications on a daily basis.
Tips and techniques that a security architect can use so that their team can apply secure coding principles to mitigate security issues right from the stage of program design and development.
It is a good time to summarize the strategies that one should try and impart to a software development team from a security architect's point of view.
A design pattern attempts to record those aspects of a recurring design in object-oriented systems that solve a problem or a class of problems.
Design patterns can be categorized in different ways according to the criteria chosen.
A class must provide a way for all its instances to share the same initial state.
Structural patterns concern themselves with the intricacies of combining classes or objects to form larger structures, which are more than the sum of their parts.
Behavioral patterns are the last stage in the complexity and functionality of patterns. They also come last chronologically in object life cycle in a system since objects are first created, then built into larger structures, before they interact with each other.
Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.
With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.
From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.
Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.