Разработка реального проекта на языке Python. Продвинутый уровень

Курс посвящен применению языка Python в разработке реальных back-end программных продуктов.
Курс: SCRIPT-007 new
Длительность: 30 ч.

Описание

Python - мощный динамический язык программирования, который используется в разнообразных прикладных областях, включая телекоммуникации. Python часто сравнивают с Tcl, Perl, Ruby, Scheme или Java. На курсе вы получите продвинутые навыки программирования на языке Python, приняв участие в разработке полноценного back-end программного продукта. Вы рассмотрите темы взаимодействия с файловой системой, объектно-ориентированного программирования, криптографии, асинхронного программирования, разработки серверного программного обеспечения, взаимодействия с базами данных, многопоточности, пакетной сборки.

Разбираемые темы

1. Вступление. Краткое введение в курс (теория + практика).
  1. Теория
    • Основные особенности языка Python
    • Системы контроля версий. Git
    • Модель Gitflow
    • Виртуальные окружения
  2. Практика
    • Развертывание виртуальных окружений

2. Файловый сервер. Описание проекта (теория).
  1. Теория
    • Описание проекта и требования к нему
    • Архитектура проекта

3. Первый прототип. Работа с файловой системой (теория + практика).
  1. Теория
    • Работа с файловой системой, контекстный менеджер
    • Модули и импорты
    • Переменные окружения
    • Архитектура первого прототипа
  2. Практика
    • Разработка первого прототипа файлового сервера

4. Тестирование и сопровождение (теория + практика).
  1. Теория
    • Основные принципы сопровождения кода на Python
    • Стандарты оформления и документирования кода
    • Тестирование кода. Фреймворк Pytest
    • Логирование
  2. Практика
    • Поддержка Docstrings
    • Разработка тестов с использованием фреймворка Pytest
    • Добавление логирования

5. Защита ресурсов. Криптография. Объектно-ориентированное программирование (теория + практика).
  1. Теория
    • Объектно-ориентированное программирование
    • Статический класс, singleton, метаклассы
    • Инкапсуляция в Python
    • Криптография в Python, цифровые подписи
    • Хэш-функции
    • Симметричное и асимметричное шифрование, гибридное шифрование
  2. Практика
    • Внедрение ООП в проект
    • Реализация статических классов и singleton
    • Разработка функционала цифровых подписей файлов
    • Шифрование файлов

6. Перенос кода с Python 2 на Python 3 (теория + практика).
  1. Теория
    • Различия между Python 2 и 3
    • Пакет future, алгоритм переноса кода с Python 2 на Python 3
  2. Практика
    • Перенос кода с Python 2 на Python 3

7. Разработка асинхронного веб-сервера (теория + практика).
  1. Теория
    • GIL
    • Асинхронное программирование в Python, asyncio
    • Корутины и awaitable-объекты, event loop
    • Сервер aiohttp
  2. Практика
    • Написание собственных корутин
    • Разработка веб-сервера aiohttp
    • Тестирование разработанного веб-сервера

8. Авторизация. Аутентификация. Работа с базой данных (теория + практика).
  1. Теория
    • Структура базы данных
    • СУБД PostgreSQL
    • Взаимодействие с базой данных в Python
    • Построение SQL-запросов в Python
  2. Практика
    • Поддержка учетных записей пользователей
    • Аутентификация пользователей и авторизация запросов
    • Взаимодействие приложения с базой данных

9. Сборка Python-пакетов (теория + практика).
  1. Теория
    • Пакеты Python, структура пакета
    • Сборка и установка пакета
  2. Практика
    • Сборка и установка собственного Python пакета/li>

ДОПОЛНИТЕЛЬНАЯ ЧАСТЬ (при должном уровне подготовки аудитории)
10. Реализация ролевой модели доступа (теория + практика).
  1. Теория
    • Ролевая модель доступа
    • ORM, SQLAlchemy
  2. Практика
    • Реализация ролевой модели ограничения доступа
    • Внедрение ORM

11. Многопоточный загрузчик файлов (теория + практика).
  1. Теория
    • Потоки, демоны, очереди
  2. Практика
    • Разработка многопоточного загрузчика файлов

Цели

В рамках курса вы:
  • на практике рассмотрите парадигму объектно-ориентированного программирования
  • рассмотрите проблему переноса программного кода с Python 2 на Python 3
  • исследуете концепцию асинхронного программирования в Python
  • исследуете возможности языка Python для работы с базами данных
  • напишите многопоточный загрузчик файлов
  • соберете свой собственный устанавливаемый Python-пакет
  • создадите свой собственный программный продукт
После прохождения курса вы начнете:
  • использовать Python для взаимодействия с файловой системой
  • грамотно поддерживать код
  • писать автоматизированные тесты на базе фреймворка Pytest
  • использовать Python для решения криптографических задач
  • разрабатывать веб-сервер
  • управлять доступом к ресурсам своего приложения

Целевая аудитория

Курс предназначен для разработчиков, системных администраторов и инженеров QA, которые хотят научиться разрабатывать, автоматизировать и тестировать приложения и системы, используя один из самых мощных языков программирования, доступных сегодня.
Участник тренинга должен в обязательном порядке пройти тренинги SCRIPT-002 и SCRIPT-003. Необходимо знать следующие базовые темы:
  • Структуры данных (списки, кортежи, словари)
  • Функции и работу с параметрами
  • Основы объектно-ориентированного подхода, включая наследование, инкапсуляцию и полиморфизм. Понятие исключения и механизм обработки исключений
  • Лямбда-функции, замыкание
  • Декораторы
  • Магические методы __init__( ) , __new__( ),
  • Понятие итератора
  • Оператор yield

Предварительная подготовка

  • Средние общие знания в области программирования. Средние знания скриптовых языков. Понимание принципов парадигмы объектно-ориентированного программирования
  • Базовые знания реляционных баз данных
  • Понимание принципа работы протокола HTTP
  • Прохождение курсов SCRIPT-002, SCRIPT-003
  • Способность понимать логические потоки кода.
После окончания курса выдаётся сертификат на бланке Luxoft Training
Тренер в Онлайн
Цытович Павел Эксперт в области разработки и архитектуры ПО
Павел имеет богатый опыт обучения разработчиков программного обеспечения по всем направлениям Software Engineering, начиная от выяснения потребностей заказчика и ответа на вопрос «Чего тебе надобно, старче?» до создания высоконагруженных систем на основе применения хорошо зарекомендовавших себя решений (паттернов). 
Павел широко использует в своей научно-практической деятельности методы объектно-ориентированного анализа и проектирования, язык моделирования UML. В качестве разработчика имеет опыт создания нагруженных приложений на платформе Microsoft .NET Framework. 

Свою карьеру Павел начал в Южно-Уральском государственном университете в 1993 г., где был преподавателем  авторизованного учебного центра при кафедре ЭВМ, позже преподавал цикл дисциплин «Программная инженерия». Павел успешно защитил диссертацию на соискание степени кандидата технических наук.
В 2011–2012 гг. в качестве архитектора проектных решений компании занимался оценкой, ведением проектов, разработкой архитектурных решений в Fuse 8 Online.
С сентября 2012 г. Павел работает в Luxoft экспертом по разработке ПО.

Павел использует в своей тренерской деятельности передовые методы. Это и проектный подход, когда на тренингах группа решает сквозной пример, раз за разом проходя к цели, изучая теоретический материал и сразу применяя его на практике, это и разработка через тестирование, когда все примеры построены в связке тест и код, что облегчает понимание не только теории, но и аспектов ее использования на практике.

Павел обладает большим практическим опытом проведения дистанционных тренингов.

Проекты:

  • разработка адаптивных систем управления электроосвещением и другого оборудования в квартирах и коттеджах (умный дом) на основе психологического состояния человека и его паттернов поведения

  • разработал драйвер на NodeJS для технологии Noolite-F применяемой в умных домах, а также адаптер для применения этого драйвера в системе умного дома IoBroker

  • в репозитории https://github.com/paveltsytovich представлено больше разработок Павла.


Сфера научных интересов: автоматизация разработки программного обеспечения, объектно-ориентированные операционные системы и среды.

Раcписание курса в Цены
Данный курс запланирован в городах: Онлайн
21.06.2021 - 25.06.2021
Время: 10:00-16:00
Локация: Онлайн
Длительность: 30 ч.
Тренер
Цытович Павел
Эксперт в области разработки и архитектуры ПО
28 200 руб.
8 400 грн.

21.06.2021

21.06.2021 - 25.06.2021
Время: 10:00-16:00
Локация: Онлайн
Длительность: 30 ч.
Тренер
Цытович Павел
Эксперт в области разработки и архитектуры ПО
28 200 руб.
8 400 грн.
Не подходят даты, время или хотите заказать корпоративное обучение для команды?
+
Предложите свой вариант
Онлайн 28 200 руб.
8 400 грн.

Записаться на курс

Выбрать дату
Если Вам не подходят дата и место проведения тренинга, Вы можете оставить заявку на участие в нем в любом из городов, где представлены филиалы Luxoft Training. Для этого выберите вариант "Открытая дата" и укажите желаемое место проведения курса.
Желаемое место проведения курса
Вы можете оставить заявку на корпоративное обучение сотрудников Вашей компании в любом городе России или Украины, выбрав вариант "Другой город"
Фамилия *

Имя *

Отчество

Контактный E-mail *

Компания *

Телефон *

Город *

Комментарий
Оценка и обучение ИТ-специалистов по ключевым направлениям разработки программного обеспечения. Курсы от экспертов-практиков по языкам программирования, системному и бизнес-анализу, архитектуре ПО, ручному и автоматизированному тестированию ПО, Big Data и машинному обучению, управлению проектами и Agile. Luxoft Training – первый учебный центр в России, авторизованный IIBA. Действует скидка 10% на обучение физических лиц.
Остались вопросы?
Связаться с нами
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.