Разбираемые темы:
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. Практика
Разработка многопоточного загрузчика файлов