Python (OPYT)

 

Опис курсу

Цей курс призначений для програмістів, які хочуть освоїти техніку програмування на мові Python. Программа також буде корисною вже кваліфікованим користувачам. Курс побудований за принципом: 20% лекційного матеріалу, 80% -лабораторні роботи.

Цілі курсу

Отримати вміння з самостійної розробки курсів мовою Python

Зміст курсу

Mодуль1: Функції.

  • Типи даних
  • Вбудовані контейнери
  • Оператори контролю виконання
  • Обробка помилок (try ... except ...)
  • Оператори циклів
  • Comprehensions (list, dict, set)
  • Створення функції і процедур
  • Аргументи функцій
  • Рекурсивні функції
  • Functors, Currying
  • Декоратори
  • Lambda-функції
  • PEP8

Mодуль 2: Об'єктно-орієнтований підхід

  • Оголошення класу та створення екземпляру
  • Принципи ООП (наслідування, інкапсуляція, поліморфізм) в Python
  • Область видимості (Namespaces, Scope, правило LEGB)
  • Method Resolution Order (MRO)
  • Магічні методи
  • Визначення математичних операцій для об’єктів Python
  • Визначення операцій порівняння для об’єктів Python
  • Визначення операцій хешування для об’єктів Python
  • Створення копії екземпляру класу, deep copy, shallow copy
  • Інкапсуляція (Setters and getters)

Mодуль 3: Управління створенням екземплярів класу

  • Doc strings
  • Meta класи
  • Abstract Bases класи
  • __new__
  • __init__
  • Context-managers
  • Використанням декораторів з класами
  • Контейнери, створені шляхом успадкування (UserList, UserDict, UserString)
  • Контейнери, створені шляхом агрегації
  • Методи доступу до елементів контейнера
  • Iterators, Generators

Mодуль 4: Прийоми об'єктно-орієнтованого програмування Software Engineering як процес

  • Мова UML
  • Принципи SOLID
  • Метрики якості коду
  • Design Patterns (категорії, приклади використання)
  • Singletone
  • Facade
  • Interface
  • Proxy
  • Abstract Factory
  • Factory Method
  • Command
  • Observer

Mодуль 5: Модулі та пакети

  • Розробка модулів (визначення та запуск)
  • Система імпортування
  • Розробка повторно використовуваних пакетів
  • Менеджер пакетів pip і віртуальні середовища virtualenv
  • Setup.py
  • Написання документації до пакету, модуля
  • Створення додатків на основі пакетів

Mодуль 6: Робота з файлами

  • Робота з системою контролю версій Git
  • Форматування рядків
  • Context-managers
  • Робота з файловою системою (os, os.path, shutil)
  • Серіалізація за допомогою pickle
  • Управління порядком серіалізації/десеріалізації об’єктів Python
  • Серіалізація даних в json
  • Серіалізація даних в xml

Mодуль 7: Вбудовані пакети Python.

  • Робота з datetime та calendar
  • Робота з collections (черги, іменовані кортежі, вкладені словники)
  • Робота з heapq, array, enum
  • Робота з числовими даними (numbers, math, decimal, random)
  • Робота з contextlib
  • Робота з functools
  • Logging
  • Unittest

Mодуль 8: Networking

  • Sockets (основи роботи, приклади серверів)
  • Socket server
  • Socket Client
  • HTTP
  • HTML, парсинг HTML-файлів
  • XML

Mодуль 9: Багатопотчність в Python

  • Global Interpreter Loc (GIL)
  • Створення потоків в Python
  • Контроль доступу до ресурсів
  • Синхронізація потоків
  • Створення потоків за допомогою пакету concurent
  • Пул потоків

Mодуль 10: Процеси в Python

  • Пакет multiprocessing
  • Interprocess communication
  • Черги завдань
  • Створення процесів за допомогою пакету concurent
  • Пул процесів
  • Відтермінування задач за допомогою пакету sched

Mодуль 11: Асинхронне програмування

  • Asyncio
  • Пакет Twisted
  • Асинхронний фреймворк Aiohttp
  • Збір даних за допомогою фреймворку Scrapy

Mодуль 12: 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

Mодуль 13: Object Relational Mapping

  • Основи роботи з SQLAlchemy
  • Механізм сессій в SQLAlchemy
  • Створення бази даних за допомогою моделей SQLAlchemy
  • Міграції баз даних за допомогою Alembic

Mодуль 14: NoSQL Бази даних

  • CAP теорема
  • Типи NoSQL баз даних
  • Робота з Redis
  • Робота з Memcached
  • Робота з MongoDB
  • Брокер повідомлень RabbitMQ
  • Основи роботи з Celery
  • Mодуль 15: Web розробка
  • Класифікація web frameworks
  • Мова шаблонів Jinja2
  • Основи API
  • Стандарти API (REST, XML-RPC, Swagger, JSON API)
  • Архітектурний підхід API First
  • Основи роботи з Flask

Prices & Delivery methods

Classroom training

Duration
53 hours

Price
  • on request
Online training

Duration
7 days

Price
  • on request

Дати та реєстрація

Currently there are no training dates scheduled for this course.