Казахстан, г. Алматы, ул. Шевченко 90, БЦ «Каратал», офис 53
Казахстан, г. Астана, ул. Иманова 19, БЦ Деловой Дом "Алма-Ата", офис 612

направление: Продвинутый курс Python кол-во дней: 5
вендор: Python кол-во часов: 40

Описание курса

Курс предназначен для тех, кто уже владеет основами разработки на Pythonи желает освоить продвинутые умения и навыки программирования на Python.

Курс также будет полезен уже квалифицированным пользователям. Программа построена по принципу 20% лекционного материала, 80% лабораторные работы.

После курса вы сможете:

Разрабатывать программы на языке Python

Функции.

  • Типы данных

  • Встроенные контейнеры

  • Операторы контроля выполнения

  • Обработка ошибок (try ... except ...)

  • Операторы циклов

  • Comprehensions (list, dict, set)

  • Создание функции и процедур

  • Аргументы функций

  • Рекурсивные функции

  • Functors, Currying

  • Декораторы

  • Lambda-функции

  • PEP8

Объектно-ориентированный подход

  • Объявление класса и создание экземпляра

  • Принципы ООП (подражание, инкапсуляция, полиморфизм) в Python

  • Область видимости (Namespaces, Scope, правило LEGB)

  • Method Resolution Order (MRO)

  • Магические методы

  • Определение математических операций для объектов Python

  • Определение операций сравнения для объектов Python

  • Определение операций хеширования для объектов Python

  • Создание копии экземпляра класса, deep copy, shallow copy

  • Инкапсуляция (Setters and getters)

Управление созданием экземпляров класса

  • Doc strings

  • Meta-классы

  • Abstract Bases-классы

  • __new__

  • __init__

  • Context-managers

  • Использованием декораторов с классами

  • Контейнеры, созданные путем наследования (UserList, UserDict, UserString)

  • Контейнеры, созданные путем агрегации

  • Методы доступа к элементам контейнера

  • Iterators, Generators

Приемы объектно-ориентированного программирования

  • Software Engineering как процесс

  • Язык UML

  • Принципы SOLID

  • Метрики качества кода

  • Design Patterns (категории, примеры использования)

  • Singletone

  • Facade

  • Interface

  • Proxy

  • Abstract Factory

  • Factory Method

  • Command

  • Observer

Модули и пакеты

  • Разработка модулей (определение и запуск)

  • Система импорта

  • Разработка повторно используемых пакетов

  • Менеджер пакетов pip и виртуальные среды virtualenv

  • Setup.py

  • Написание документации к пакету, модулю

  • Создание приложений на основе пакетов

Работа с файлами

  • Работа с системой контроля версий Git

  • Форматирования строк

  • Context-managers

  • Работа с файловой системой (os, os.path, shutil)

  • Сериализация с помощью pickle

  • Управление порядком сериализации/десериализации объектов Python

  • Сериализация данных в json

  • Сериализация данных в xml

Встроенные пакеты Python.

  • Работа с datetime и calendar

  • Работа с collections (очереди, именуемые кортежи, вложенные словари)

  • Работа с heapq, array, enum

  • Работа с числовыми данными (numbers, math, decimal, random)

  • Работа с contextlib

  • Работа с functools

  • Logging

  • Unittest

Networking

  • Sockets (основы работы, примеры серверов)

  • Socket server

  • Socket Client

  • HTTP

  • HTML, парсинг HTML-файлов

  • XML

Многопоточность в Python

  • Global Interpreter Loc (GIL)

  • Создание потоков в Python

  • Контроль доступа к ресурсам

  • Синхронизация потоков

  • Создание потоков с помощью пакета concurent

  • Пул потоков

Процессы в Python

  • Пакет multiprocessing

  • Interprocess communication

  • Очереди задач

  • Создание процессов с помощью пакета concurent

  • Пул процессов

  • Отсрочка задач с помощью пакета sched

Асинхронное программирование

  • Asyncio

  • Пакет Twisted

  • Асинхронный фреймворк Aiohttp

  • Сбор данных с помощью фреймворка Scrapy

SQL

  • Основы реляционных баз данных

  • ER-диаграммы

  • Стандарт PEP249

  • Работа с СУБД SQLite, PostgreSQL

  • Основы языка SQL (SELECT, LIKE, ORDER BY, LIMIT)

  • INSERT

  • UPDATE

  • DELETE

  • JOIN (INNER, LEFT, OUTER)

  • GROUP BY

  • Функции SQL (mean, min, max, avg, count)

  • Subqueries

Object Relational Mapping

  • Основы работы с SQLAlchemy

  • Механизм сессий в SQLAlchemy

  • Создание базы данных с помощью моделей SQLAlchemy

  • Миграции баз данных с помощью Alembic

NoSQL-базы данных

  • CAP теорема

  • Типы NoSQL баз данных

  • Работа с Redis

  • Работа с Memcached

  • Работа с MongoDB

  • Брокер сообщений RabbitMQ

  • Основы работы с Celery

Web-разработка

  • Классификация web frameworks

  • Язык шаблонов Jinja2

  • Основы API

  • Стандарты API (REST, XML-RPC, Swagger, JSON API)

  • Архитектурный подход API First

  • Основы работы с Flask

Минимальные требования:

  • Базовые знания языка Python