Проходил 3 апреля в 20:00

Открытый вебинар
Правила хорошего кода на Python

Открытый вебинар онлайн

На открытом уроке мы поговорим о том, как писать хороший код на Python так, чтобы его было не больно поддерживать. Поговорим о приёмах декомпозиции программы, о чистых и грязных функциях, цикломатической сложности и статическом анализе.
Знания универсальны и будут полезны при работе над проектом любого размера.
Чтобы понять, что будет происходить на уроке, достаточно знать синтаксис Python и иметь опыт написания и доработки скриптов на нём.
Преподаватель
Илья Лебедев

Запись

О курсе

Web-разработчик на Python
50 000 ₽
5 месяцев
Начало 25 июля
Цель курса “WEB-разработка на Python” – подготовить специалиста, который сможет не только решать рядовые задачи бекенд-разработки, но и сделать с нуля современную фронтенд часть. Чтобы получить опыт бекенд-разработки, мы будем не только решать типовые задачи, но и разбираться в том, как устроены основные средства, которыми мы пользуемся каждый день. Например, в рамках курса студенты реализуют свой небольшой uwsgi-совместимый веб-фреймворк и ...
Программа курса
1
модуль
2
модуль
3
модуль
4
модуль
5
модуль
Занятие 1: Технические детали курса; декомпозиция; чистые функции; цикломатическая сложность; читаемость; фичеризм; поддерживаемость; статический анализ кода.
ДЗ
Рефакторинг существующего кода.. Отрефакторить и оформить в виде библиотеки на Гитхабе следующий код: https://gist.github.com/Melevir/5754a1b553eb11839238e43734d0eb79
Занятие 2: Объекты и переменные; структуры данных под капотом основных типов; list vs tuple; профилирование памяти; как работает сборщик мусора.
ДЗ
Парсер и анализатор названий статей на Хабре.
Занятие 3: Принципы ООП; mixins; class/instance variables; MRO; dict; slots; name mangling.
ДЗ
Добавление фич в скрипт для статического анализа кода..
Занятие 4: IP, TCP, HTTP; [u]WSGI.
ДЗ
Написать свой wsgi-совместимый веб-фреймворк..
Занятие 5: werkzeug; Flask.
ДЗ
Сделать демо интернет-магазина на Flask..
Занятие 6: ORM – зачем нужно; описание схемы данных; сессии; добавление/удаление/апдейт данных
ДЗ
Написать свою ORM для sqlite..
Занятие 7: Django apps; Django ORM; Django Class Based Views; Django common tools.
ДЗ
Сделать демо интернет-магазина на Django..
Занятие 8: Семинар. Реализуем свой WSGI-совместимый фреймворк.
Занятие 9: Django REST Framework. Django Configurations.
ДЗ
Реализуем базовый бекенд для сайта с курсами..
Занятие 10: API. GraphQL и его реализация в Python. GraphQL и Django.
ДЗ
Добавляем сущности и фичи для API сайта с курсами..
Занятие 11: Fabric. Развертывание проекта на сервере.
Занятие 12: Django шаблоны и немного Bootstrap 3. Делаем веб-интерфейс.
Занятие 13: Знакомство с Front-end частью курса. Основы HTML, CSS, методологии вёрстки. Немного Bootstrap 4.
ДЗ
Сделать вёрстку (HTML + CSS) главной страницы сайта для обучения..
Занятие 14: Django m2m, select_related/prefetch_related, django debug toolbar, factory_boy, faker.
Занятие 15: Основы JS: типы данных, операторы, объекты, работа с DOM и браузером
ДЗ
Добавление поведения к главной странице, страница курсов.
Занятие 16: Python social auth, django context processors.
Занятие 17: Продвинутый JS: ООП в JS, прототипирование, асинхронность.
ДЗ
Страница расписания занятий.
Занятие 18: Азы работы с очередями задач.
ДЗ
Добаляем асинхронную отправку электронной почты.
Занятие 19: ES6, NodeJS окружение, babel + webpack, транспайлинг, CSS препроцессоры
ДЗ
Сборка UI с помощью webpack, форма логина и регистрации, проксирование вызовов на back-end.
Занятие 20: Пишем свой менеджер очередей.
Занятие 21: fetch || axios || $.ajax для REST запросов, модульность
ДЗ
Загрузка списка курсов с сервера, логин страница, REST API для работы.
Занятие 22: Введение в автотесты.
ДЗ
Покрыть проект приёмочными тестами на 60%.
Занятие 23: Code review
ДЗ
Исправление недостатков в соответствии с code review.
Занятие 24: Введение в TDD.
Занятие 25: Основы React, JSX, компоненты React
ДЗ
Главная страница на React.
Занятие 26: Введение в pytest.
ДЗ
Переписать тесты на pytest и factory_boy.
Занятие 27: state и props, data-flow в React-компонентах
ДЗ
Страница логина, регистрации на React.
Занятие 28: InfluxDB, Grafana.
Занятие 29: Жизненный цикл React-компонент
ДЗ
Страница личного кабинета, отправка решения на сервер.
Занятие 30: Jenkins, Sentry.
ДЗ
Настроить логирование ошибок в Sentry..
Занятие 31: Состояние приложения. Flux & Redux
ДЗ
Блок успеваемости в личном кабинете, ведомость в кабинете преподавателя.
Занятие 32: python-telegram-bot
Занятие 33: Code review
ДЗ
Исправление недостатков в соответствии с code review.
Занятие 34: threading, multiprocessing, queue.
Занятие 35: Routing в React. SPA
ДЗ
Организация всего приложения в виде SPA..
Занятие 36: Введение в docker, docker-compose.
ДЗ
Завернуть проект в докер-контейнеры.
Занятие 37: Тестирование JS приложений
ДЗ
Написание unit-тестов для UI и back-end.
Занятие 38: asyncio
Занятие 39: Обзор Vue2
ДЗ
Landing page на Vue.
Занятие 40: QnA

Преподаватель

Илья Лебедев
Эксперт, консультант по архитектуре приложений. Специалист по разработке серверных решений на Python. Автор курсов по веб-разработке в МГТУ им. Баумана, ВШЭ. Соорганизатор курсов Learn Python и devman.org. Старший разработчик в Itcanfy и Ngenix.
9 лет опыта программирования на C++, Python, PHP и JavaScript. Участвовал в проектах разной сложности: от разработки небольших корпоративных сайтов до планирования и реализации высоконагруженных сервисов и использованием микросервисной архитектуры.
Преподаватель курсов:
Web-разработчик на Python