Длительность: 30 ч.
Описание
Python - мощный динамический язык программирования, который используется в разнообразных прикладных областях, включая телекоммуникации. Python часто сравнивают с Tcl, Perl, Ruby, Scheme или Java. На курсе вы получите продвинутые навыки программирования на языке Python, приняв участие в разработке полноценного back-end программного продукта. Вы рассмотрите темы взаимодействия с файловой системой, объектно-ориентированного программирования, криптографии, асинхронного программирования, разработки серверного программного обеспечения, взаимодействия с базами данных, многопоточности, пакетной сборки.Разбираемые темы
1. Вступление. Краткое введение в курс (теория + практика).- Теория
- Основные особенности языка Python
- Системы контроля версий. Git
- Модель Gitflow
- Виртуальные окружения
- Практика
- Развертывание виртуальных окружений
2. Файловый сервер. Описание проекта (теория).
- Теория
- Описание проекта и требования к нему
- Архитектура проекта
3. Первый прототип. Работа с файловой системой (теория + практика).
- Теория
- Работа с файловой системой, контекстный менеджер
- Модули и импорты
- Переменные окружения
- Архитектура первого прототипа
- Практика
- Разработка первого прототипа файлового сервера
4. Тестирование и сопровождение (теория + практика).
- Теория
- Основные принципы сопровождения кода на Python
- Стандарты оформления и документирования кода
- Тестирование кода. Фреймворк Pytest
- Логирование
- Практика
- Поддержка Docstrings
- Разработка тестов с использованием фреймворка Pytest
- Добавление логирования
5. Защита ресурсов. Криптография. Объектно-ориентированное программирование (теория + практика).
- Теория
- Объектно-ориентированное программирование
- Статический класс, singleton, метаклассы
- Инкапсуляция в Python
- Криптография в Python, цифровые подписи
- Хэш-функции
- Симметричное и асимметричное шифрование, гибридное шифрование
- Практика
- Внедрение ООП в проект
- Реализация статических классов и singleton
- Разработка функционала цифровых подписей файлов
- Шифрование файлов
6. Перенос кода с Python 2 на Python 3 (теория + практика).
- Теория
- Различия между Python 2 и 3
- Пакет future, алгоритм переноса кода с Python 2 на Python 3
- Практика
- Перенос кода с Python 2 на Python 3
7. Разработка асинхронного веб-сервера (теория + практика).
- Теория
- GIL
- Асинхронное программирование в Python, asyncio
- Корутины и awaitable-объекты, event loop
- Сервер aiohttp
- Практика
- Написание собственных корутин
- Разработка веб-сервера aiohttp
- Тестирование разработанного веб-сервера
8. Авторизация. Аутентификация. Работа с базой данных (теория + практика).
- Теория
- Структура базы данных
- СУБД PostgreSQL
- Взаимодействие с базой данных в Python
- Построение SQL-запросов в Python
- Практика
- Поддержка учетных записей пользователей
- Аутентификация пользователей и авторизация запросов
- Взаимодействие приложения с базой данных
9. Сборка Python-пакетов (теория + практика).
- Теория
- Пакеты Python, структура пакета
- Сборка и установка пакета
- Практика
- Сборка и установка собственного Python пакета/li>
ДОПОЛНИТЕЛЬНАЯ ЧАСТЬ (при должном уровне подготовки аудитории)
10. Реализация ролевой модели доступа (теория + практика).
- Теория
- Ролевая модель доступа
- ORM, SQLAlchemy
- Практика
- Реализация ролевой модели ограничения доступа
- Внедрение ORM
11. Многопоточный загрузчик файлов (теория + практика).
- Теория
- Потоки, демоны, очереди
- Практика
- Разработка многопоточного загрузчика файлов
Цели
В рамках курса вы:- на практике рассмотрите парадигму объектно-ориентированного программирования
- рассмотрите проблему переноса программного кода с Python 2 на Python 3
- исследуете концепцию асинхронного программирования в Python
- исследуете возможности языка Python для работы с базами данных
- напишите многопоточный загрузчик файлов
- соберете свой собственный устанавливаемый Python-пакет
- создадите свой собственный программный продукт
- использовать Python для взаимодействия с файловой системой
- грамотно поддерживать код
- писать автоматизированные тесты на базе фреймворка Pytest
- использовать Python для решения криптографических задач
- разрабатывать веб-сервер
- управлять доступом к ресурсам своего приложения
Целевая аудитория
Курс предназначен для разработчиков, системных администраторов и инженеров QA, которые хотят научиться разрабатывать, автоматизировать и тестировать приложения и системы, используя один из самых мощных языков программирования, доступных сегодня.Участник тренинга должен в обязательном порядке пройти тренинги SCRIPT-002 и SCRIPT-003. Необходимо знать следующие базовые темы:
- Структуры данных (списки, кортежи, словари)
- Функции и работу с параметрами
- Основы объектно-ориентированного подхода, включая наследование, инкапсуляцию и полиморфизм. Понятие исключения и механизм обработки исключений
- Лямбда-функции, замыкание
- Декораторы
- Магические методы __init__( ) , __new__( ),
- Понятие итератора
- Оператор yield
Предварительная подготовка
- Средние общие знания в области программирования. Средние знания скриптовых языков. Понимание принципов парадигмы объектно-ориентированного программирования
- Базовые знания реляционных баз данных
- Понимание принципа работы протокола HTTP
- Прохождение курсов SCRIPT-002, SCRIPT-003
- Способность понимать логические потоки кода.