Ступень 4: Карьера и SDLC
Содержание:
Введение:
Магические методы и протоколы:
- Магические методы и протоколы
- Магические методы для интроспекции
- Магические методы множеств
- Математические методы
- Создание вызываемого типа и менеджеры контекста
- Другие магические методы
Расширенные возможности ООП:
- Особые типы методов класса staticmethod и classmethod
- Методы установки и чтения свойств, геттеры и сеттеры (setter и getter)
- Декоратор @property
- Шпаргалка по классам
- Шпаргалка по протоколам
Работа с базой данных с помощью SQLAlchemy:
REST API:
- Что такое API и как с ним работать
- Что такое REST API
- Что такое JSON
- Специализация HTTP методов
- Как работает API клиент
- Читаем документацию по API
Создаем API клиент для сайта:
Виды взаимодействия с API:
- Что такое webhook, еще один способ API взаимодействия
- Telegram бот через webhook'и
- Задание: написать бот сообщающий о погоде с использованием внешнего API
- Сдача проекта
Введение в тестирование:
- Что такое тестирование
- Создание первых тестов
- Подготовка условий для запуска тестов
- Показатель покрытия тестами
- Написание тестов для телеграм бота
- Что такое мок тесты и как правильно покрывать тестами внешнее взаимодействие
- Задание: покрыть тестами телеграм бот
Аннотирование кода:
- Зачем нужна типизация
- Аннотация простых типов
- Модуль typing
- Автоматизация проверки типов с помощью инструментов mypy и pyre
Организация совместной работы в командах:
- Какие проблемы решает Git
- Как организована совместная работа в Gitlab
- Как отправить изменения в проект
- Что такое code review
- Что такое merge и pull request
- Совместная работа с проектами с помощью Gitflow
- Что такое CI/CD и как автоматизация может улучшить качество совместной работы
Подготовка резюме:
- Составление резюме
- Публикация резюме и сбор отзывов
- Что должно вызывать подозрение при поиске работы
- Юридическая часть совместной работы: договор, NDA
- Интеллектуальная собственность на код
- Первый день в компании: получение учетных записей, роли, консультанты по карьере
SDLC цикл разработки программного обеспечения:
- Гибкие методологии управления проектами
- Планирование: сбор требований и постановка задач
- Планирование: начало спринта
- Работа внутри спринта, зачем нужны стендапы
- Принятие и сдача выполненных заданий
Финальный проект:
Завершение: