IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
читайте авторский блог

     10.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Видео

Андрей Ермилов, Максим Белоусов. Советы по использованию опциональной статической типизации

На тему использования опциональной статический типизации в Python написано много статей. В докладе мы не будем повторять прописные истины, а попробуем ответить на вопрос для чего нужно ее использовать, на примерах разберем, как это можно делать и покажем преимущества, которая она дает. Также мы коснемся сложностей, которые возникают при использовании типизации и продемонстрируем способы их решения.

     10.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Видео

Павел Дружинин. Из веб-девелопмента к "железу"

В корпорациях любят всё автоматизировать. Большое количество энтерпрайз-продуктов и внутренних веб-сервисов, которые общаются между собой — все это привычные задачи внутренней и инфраструктурной разработки. Но что, если необходимо автоматизировать выдачу оборудования сотруднику компании? Это возможность выйти за рамки стандартных веб-сервисов и узнать что происходит на уровне железа. Как включить огромную железную коробку, которая умеет только принимать байты на серийный порт, в привычный нам, веб-разработчикам, стек Django, React. js, PostgreSQL, Celery и заставить все это общаться между собой? Посмотрим на консьюмеры Kombu, RabbitMQ. Поучимся управлять пружинами вендинга при помощи Python, читать оптические датчики. Построим всю систему до пользовательского интерфейса «снизу-вверх». И постараемся по пути не отрезать себе палец, когда будем перекидывать питание крутящих серво-приводов между шинами :)

     10.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Видео

Максим Данилов. Скрытая супер-сила Django Admin Panel в масштабируемом Backend приложении

В своем докладе я расскажу о том, что на самом деле может django.contrib.admin, как и зачем преодолевать внутреннее сопротивление при работе с ним. Django Admin Panel — сложный и мало документированный инструмент в Django Framework, который способен значительно повысить скорость разработки, если в нём по-настоящему разобраться. — «A Не проще ли нам написать свой Backend?» Я отвечу: «Нет, не проще!». Семь лет инсайтов и открытий в моем докладе.

     10.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Видео

Юлия Волкова. Разработка на Python. А можно еще быстрее?

Расскажу о том, как экономить время на старте проектов. Посмотрим как тут выручает генерация кода и что есть из готовых решений. Как можно, просто введя 2 команды из DDL схемы базы данных, получить готовый CRUD REST сервис с моделями и endpoint-ами. Зачем мне в 2020 пришлось писать свой ddl парсер и генерацию ORM & Pydantic моделей, и как это облегчило жизнь проекту. Что из чего вообще можно генерировать, чтобы не писать это руками. Бегло посмотрим какие есть готовые библиотеки на сегодняшний день (основные их категории) и кейсы их использования. Обсудим плюсы данного тренда. Лично мне кажется, что это тренд — с каждым годом таких библиотек все больше и больше, и мы стараемся не писать тот код, который можно не писать. Рассмотрим кейсы, когда это удобно/полезно (про быстрые PoC, RnD) и направления, куда двигаться дальше, если тема интереса.

     10.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Видео

Богдан Володарский. Data/ML QA on Python

Сегмент данных взрослеет и за этим следует потребность в их валидации. Расскажу как построить процесс тестирования на данных на проекте на основе фреймворка great expecations. Как интегрироваться в дата пайплайн в AWS. Расскажу, как мы решили проблему репортинга и дашбординга + как на результатах Data QA устроить ML QA

     10.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Видео

Вячеслав Буторов. Как создать ваш собственный плагин для Sentry, при полном отсутствии документации

Мы много лет используем Sentry (28k звёзд, 3.2k форков на гитхабе) для мониторинга исключений на проектах, а так же мессенджер Telegram для общения. Когда я захотел получать уведомления об инцидентах из Sentry в Telegram, я не нашёл такой возможности, но что самое интересное — ни слова в официальной документации как добавить такой плагин. Пройдя путь от изучения устройства плагинов, поддерживаемых авторами Sentry и работы с ними в самом ядре Sentry, до создания своего плагина, используемого многими компаниями, я вижу, по поступающим вопросам, что интерес к теме не уменьшается со временем, а актуальной информации в сети всё так же нет. Я вижу, что отдельные разработчики регулярно создают свои плагины для Sentry, но каждый из них вынужден проходить этот путь с нуля и самостоятельно, как это делал я. Неплохо разобравшись в процессе с вопросом, я был бы рад поделиться знаниями с участниками PyCon. Вместе со участниками мы пройдём по таким пунктам как: общее устройство плагина для Sentry: от простого к более сложному его место в общей архитектуре Sentry и как он запускается проблема с использованием популярных плагинов в cloud версии Sentry правильный способ установки плагинов в Sentry (грабли, по которым прошёл я, и провёл за собой N пользователей первых версий своего плагина) добавление своих интерфейсов настроек в интерфейс Sentry работа с сетью из вашего плагина: отправка запросов и получение их от внешних систем работа с базой данных и миграциями недокументированные, но вычленённые из исходников, best practice которые следует использовать при создании плагинов, чтобы не поотстреливать ноги себе и своему админу, который поддерживает Sentry

     10.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Видео

Данил Ахтаров. Кеширование — делаем всё правильно

В докладе поделюсь опытом настройки политики кэширования данных в Python-приложениях. Наверное, каждый, кто решал эту проблему, столкнулся с ней в неподходящий момент. Давайте сразу настроим «агрессивное» кэширование, а дальше будем оптимизировать инфраструктуру вокруг. А именно — решим вопросы: — Какой backend использовать: redis, keydb? А, может, in memory? — В каком формате хранить данные? — Как мы можем это мониторить? Нам точно нужен кэш? — Какой инструмент лучше всего подходит?

     10.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Видео

Денис Аникин. FastAPI как основной framework для python бекендов

FastAPI уже не первый год с нами. Последние пару лет фреймворк явно на подъеме: количество звезд на гитхабе уже больше чем 50% от мастодонтов рынка — django, flask. В ds среде и в каждом туториале flask, в каждой второй вакансии суперсовременные горизонтально масштабируемые сервисы на… django. Однако, про fastapi разговоров довольно немного и проникновение как в рынок, так и в публичное пространство у него не велико. И уж тем более, пока ещё про него не говорили с позиции продакшена (как минимум, на конференциях). Так сложилось, что в банке мы сделали на нем несколько десятков сервисов и уже больше года активно эксплуатируем как раз в том самом продакшене, а так же рекомендуем его внутри, как основной, практически всем. За это время мы успели полюбить этот фреймворк, но при этом нашли его «зоны роста». В своем докладе я постараюсь раскрыть три темы: сделаю краткий обзор на сам фреймворк поделюсь тем, чего ему не хватает для полноценной жизни в продакшене (с моей точки зрения) подсвечу довольно очевидные потенциальные проблемы. Ну и, конечно же, займусь неймдроппингом: FastAPI!

     10.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Видео

Альбина Альмухаметова. Оптимизация i-запросов в Django+Postgres или неточности документации

На рынке веб-разработки Django, пожалуй, один из самых популярных фреймворков. Но может ли оказаться так, что в документации такого «старичка» есть неточности? В докладе расскажу о том, как оптимизация простого поискового запроса пошла не по плану. Вспомним старые добрые индексы и разберёмся, какие нам действительно нужны, и как соединить их с нашим приложением. В конце обсудим, что же нового случилось в 3 версии и как она упростила нам жизнь.

     10.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Видео

Андрей Алексеев. ETNA Time Series Library: удобное прогнозирование временных рядов

Временные ряды — это любые данные, у которых есть временная метка. Некоторые ряды нужно прогнозировать — например, сколько глазированных сырков купят на этой неделе, сколько посетителей будет в магазине, сколько наличных останется в банкомате. Для их прогноза нужны разные модели и признаки, но подход к исследованию проблемы будет одинаковый. Сначала мы пробовали решать каждую отдельную задачу усилиями разных ML-специалистов: это было долго, каждый пилил свой собственный «велосипед», не было обмена опытом и не спасало от ошибок. Поэтому мы решили сделать ML-эксперименты с временными рядами простыми и быстрыми — и придумали библиотеку ETNA.

     10.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Видео

Алексей Кузьмин. Обработка ошибок в Python

В нашем IT-мире есть только один достоверный источник информации — исходный код. Документация может быть не актуальной, книжка может устареть, статья может осветить только один аспект. А исходный код — честен, доступен и открывает тайны всем, кто достаточно смел, чтобы заглянуть в него. На мой взгляд нет ничего интереснее, чем поковыряться в нем и понять как работает та или иная технология, тот или иной инструмент на самом деле. Я приглашаю Вас в увлекательное приключение по обработке ошибок в Python cо стороны исходного кода — мы заглянем внутрь, увидим как работают основные механизмы обработки ошибок, рассмотрим частные виды исключений и их особенности и еще много чего интересного.

     10.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Видео

Анна Богданова. Rефакторинг: Regулярный и ASTообразный

Расскажу, как можно автоматизировать рефакторинг большой кодовой базы на примере перехода с синтаксиса одной библиотеки на синтаксис другой. Покажу, как можно реализовать это двумя способами: с помощью регулярных выражений и с помощью абстрактных синтаксических деревьев. Буду сравнивать оба подхода: что быстрее в реализации, что быстрее работает, какие нюансы стоит учитывать при выборе одного или второго подхода

     09.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Статьи

Диаграмма воронки в Python

Диаграммы-воронки часто используются для представления данных на различных этапах бизнес-процесса. Они является важным механизмом бизнес-аналитики для выявления потенциальных проблемных областей процесса. Например, они используются для наблюдения за доходами и затратами в процессе продаж на каждом этапе и отображают значения, которые постепенно уменьшаются. Каждый этап отражает определенный процент от общего числа всех значений.

     09.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Статьи

Книга «Паттерны разработки на Python: TDD, DDD и событийно-ориентированная архитектура»

Популярность Python продолжает расти, а значит, проекты, созданные на этом языке программирования, становятся все масштабнее и сложнее. Многие разработчики проявляют интерес к высокоуровневым паттернам проектирования, таким как чистая и событийно-управляемая архитектура и паттерны предметно-ориентированного проектирования (DDD). Но их адаптация под Python не всегда очевидна.

     09.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Статьи

Я не чувствую давления async

Async в моде. Async Python, Async Rust, Go, Node, .NET и т.д. Выбирайте свою любимую экосистему, и в ней будет свой модуль для асинхронности. Насколько хорошо работает вся эта асинхронная история, во многом зависит от экосистемы и среды выполнения языка, но в целом у нее есть несколько приятных преимуществ. Что действительно становится проще – это ожидание завершения операции, выполнение которой требует некоторого времени. Теперь это настолько просто, что количество способов выстрелить себе в ногу невероятно выросло. Тот способ, о котором я хочу сегодня поговорить – это тот, в котором вы не осознаете, что стреляете себе в ногу, пока система не начнет перегружаться. Да, я про управление давлением. Родственным термином в сетевых технологиях является «контроль потока». 

     09.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Статьи

Последний велосипедно-питоний бой с ошибками импорта sqlite за 2 174 433 строчки. Часть 3

Замечание. Вся трилогия (часть 1 тутчасть 2 тут) о велосипедостроении с  sqlite, xml,  csv только для совсем маленьких Питоньих кодеров. Не для  крутых кодеров,  они умрут от скуки в нашем опусе  и ничего  нового  не увидят.  В третьей части заканчиваем все, что начали ранее

     08.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Статьи
     08.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Статьи

Практические рекомендации по работе с Docker для Python-разработчиков

Прим. Wunder Fund: в этой длииинной статье вы найдете ряд полезных советов по работе с Docker, как общего характера, так и Python-специфичных. Хоть мы и давно используем Docker в работе, про некоторые советы мы подумали "а что, так можно было?". Советуем вначале пролистать статью, и отметить штуки, которые покажутся актуальными для вашей текущей ситуации.

     08.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Статьи

Как создать легко воспроизводимый DS проект

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

     06.11.2021       Выпуск 411 (01.11.2021 - 07.11.2021)       Статьи