Разработка реального проекта на языке 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. Реализация ролевой модели доступа (теория + практика).
  1. Теория
    • Ролевая модель доступа
    • ORM, SQLAlchemy
  2. Практика
    • Реализация ролевой модели ограничения доступа
    • Внедрение ORM

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

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

Цели

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

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

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

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

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

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

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

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

В репозитории https://github.com/paveltsytovich представлены некоторые разработки Павла. В частности, им разработан драйвер на NodeJS для технологии Noolite-F применяемой в умных домах, а также адаптер  для применения этого драйвера в системе умного дома IoBroker.

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

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

Данный курс запланирован в городах: Онлайн
15.02.2021 - 19.02.2021
Время: 10:00-16:00
Локация: Онлайн
Длительность: 30 ч.
Тренер
Цытович Павел
Специалист в области разработки и архитектуры ПО
28 200 руб.
9 000 грн.
В корзину

15.02.2021

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

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

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

Имя *

Отчество

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

Компания *

Телефон *

Город *

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