Moscow Python
1.95K subscribers
118 photos
3 videos
2 files
841 links
Канал Python.ru и Moscow Python. Новости сообщества, события, статьи, интервью.

Чат: @moscowpythonconf
Download Telegram
«Темные силы не дремлют. Они пробираются в дивное королевство Python и используют черную магию, чтобы осквернить главную реликвию — чистый код. Однако опасны не только злые чары.

Сегодня я расскажу о страшных чудовищах, которые, возможно, уже обжились в вашем коде и готовы устанавливать свои правила. Здесь нужен герой, который защитит безмятежный мир от злобных тварей. И именно вы станете тем, кто сразится с ними!»
https://habr.com/ru/company/oleg-bunin/blog/485960/
#НеПереключайтеКанал
Сегодня выкладываем доклад Вадима Пономарёва (Jexia) «OpenStack - Python-проект в 12 миллионов строк»
«Доклад будет состоять из 6-ти частей.

Историческая справка: что это за проект, когда был основан проект и зачем, кем разрабатывалась первая версия, кто занимается им сейчас.

Как устроен: карта всего проекта в целом, микросервисная архитектура проекта, кем и зачем используется в настоящее время.

Размер проекта и комьюнити: количество проектов, количество репозиториев, количество строк в цифрах, сервис для сбора статистики комьюнити, какие компании участвуют в разработке.

Как ведется разработка: workflow проекта, используемые инструменты, выпуск релизов, управление зависимостями, как выполняется codereview и сколько в целом уделяется этому внимания. Кратко о документации проекта и сколько ей уделяется внимания. Об отдельном проекте для разворачивания среды разработки devstack.

Библиотеки и собственные решения OpenStack (проекты OSLO): о самых интересных библиотеках, написанных комьюнити OpenStack, какие проблемы решали, и что в итоге получилось».
https://youtube.com/watch?v=coD5f4ALGug
#НеПереключайтеКанал
Сегодня выкладываем доклад Алексея Фирсова (ADV) «История aiopg»
«Почему появилась библиотека aiopg, какие были совершены ошибки (только мое мнение)? Разберемся, что это. ORM? Драйвер? Может быть, все вместе? Может, это что-то другое? Попробуем сравнить aiopg vs asyncpg».
https://youtube.com/watch?v=i1IVcaN2Z-A
#НеПереключайтеКанал

Следующий доклад - выступление Кирилла Борисова (Booking) «Укрощая зверя: legacy-код, тесты и вы»

«Многие разработчики согласны с тем, что при рефакторинге старого кода тесты необходимы как воздух. Многие разработчики также согласны с тем, что тестирование такого кода равно страданиям, или же даже не знают, с чего начать.

В этом докладе с вами поделятся выжимкой более чем 10-летного опыта работы со старым кодом, попытками внедрить в него тесты и не сойти с ума.

О чем вы узнаете:
* как начать разговор с вашим начальством и не быть осмеянным;
* возможные векторы атаки на "логово зверя";
* какие грабли могут поджидать ступивших на этот путь;
* всякие мелочи, которые вам пригодятся (или нет)».
https://youtube.com/watch?v=qn5fCeZ9MAs
#НеПереключайтеКанал

Сегодня делимся докладом Никиты Соболева (wemake.services) «Убивай мутантов, спаси свой код»
«У вас настроен супер-стрикт-набор валидаторов кода, обязательная аннотация типов без Any и требования стопроцентного покрытия кода тестами? Вот и у нас тоже да. Но тогда для вас не секрет, что ошибки все равно будут. И никакие тесты вас не спасут. Потому что они плохие.

Плохие? Почему плохие? А потому что вы не тестрируете ваши тесты! Приходите на мой доклад, я научу вас как тестировать тесты и упарываться по их качеству».
https://youtube.com/watch?v=-kQh9WFD74E
#НеПереключайтеКанал
Сегодня в эфире Артём Малышев (Drylabs.io) с докладом «Инструменты domain driven design»

«Сложность бывает неотъемлемой и привнесённой. Из доклада вы узнаете, как организовывать первую и минимизировать вторую. Поговорим о том, как построить свой продукт вокруг решаемой проблемы, а не используемого фреймворка. Узнаем, в каком месте лучше вводить typing и dataclasses. Рассмотрим, где нам пригодится контрактное программирование и pydantic. Попробуем библиотеки из проекта dry-python. И, конечно, не обойдётся без тестов. Только практика. Никаких UML-схем и абстрактных фабрик фасадов».
https://youtube.com/watch?v=8mZUZs6RBf4
На Moscow Python Conf++ 27 марта в центре Москвы будет: 3 потока докладов, поток воркшопов и митапов, 4 Core-разработчика (тут мы считаем и заведующего разработкой Pytest и Hypothesis), 6 зарубежных спикеров с нетривиальным опытом, доклады от Microsoft, Wargaming, JetBrains, Parallels, EPAM, Booking.com, Tinkoff и других не менее интересных компаний.

Григорий Петров лично проверил, что в расписании нет ни одной проходной темы, и рассказывает о спикерах в статье на Хабре:
https://habr.com/ru/company/oleg-bunin/blog/488006/
#НеПереключайтеКанал
Сегодня выкладываем доклад Дмитрия Климинского (Авито) «Цены на Avito: как мы управляем миллиардом значений»
«Все цены на Avito выбираются программно: у нас есть команда аналитиков с Machine Learning, множество одновременных экспериментов и миллиард цен на разные услуги в разных городах. В докладе я расскажу про нашу инфраструктуру на Python, как мы работаем с данными, общаемся с аналитиками, отдаем цены для Frontend и быстро ищем нужные значения».
https://youtube.com/watch?v=InYjlYCYNx8
#НеПереключайтеКанал
Сегодня выкладываем доклад Анны Мошкиной (Iponweb) «Как создать десять приложений из одного и не сойти с ума»

«Иногда мечта программиста сбывается, и можно раз за разом создавать одно и то же приложение с небольшими отличиями в логике работы и интерфейсе. А дальше все, как в фильмах ужасов: багфиксы и новые фичи должны применяться ко всем ранее созданным приложениям. И никаких миграций для баз данных!

В докладе я расскажу, как мы делаем такие штуки, динамически создаем приложения по JSON-описанию, используем "пластилиновую" архитектуру базы данных и тестируем одновременно наше "ядро" и десятки созданных приложений. И все это - на базе Django, PostgreSQL и Angular».
https://youtube.com/watch?v=4cq0n14AbnQ
#НеПереключайтеКанал

Сегодня выкладываем доклад Вадима Гончарова и Арсения Габдуллина (Тинькофф) «Эволюция Тинькофф Журнала»

«Мы в Тинькофф стараемся экспериментировать с разными штуками и развивать то, что «взлетело». Так, четыре года назад родился Тинькофф-журнал: эксперимент про обучение людей финансовой грамотности. Эксперимент успешный, и за годы мы эволюционировали проект от простого блога на Wordpress до Django-комбайна с быстрым фронтендом на ReactJS.

Доклад будет про эволюцию: как безболезненно для бизнеса «на лету» менять технологии с сохранением пользовательского опыта, чем Django лучше готовых решений, нужно ли добавлять к ней ReactJS-фронтенд и зачем».
https://youtube.com/watch?v=mUdHD8rP4Yo
#НеПереключайтеКанал
Сегодня делимся докладом Кирилла Дунаева (Яндекс) «Как мы в Яндексе следим за производительностью веб-приложений»
«Большинство разработчиков собирают логи своих приложений. Обращения к базе данных, HTTP-запросы и ответы API, задачи Celery. Логи полезны: там видны пятисотки от внешних сервисов, проседания производительности и неожиданно возросшее время ответа после деплоя в пятницу вечером.

За годы работы с Django-приложениями мы в Яндекс заметили, что разные приложения пишут в лог примерно одно и то же. А мы, разработчики, не любим писать один и тот же код!

В докладе я расскажу про нашу внутреннюю библиотеку, которая автоматически подключается к нашим Django-приложениям и сама собирает множество логов, включая работы с ORM и HTTP-запросами. Кроме логов, я расскажу про нашу культуру работы с ними: кросс-дежурства, примеры "плохих" и "хороших" графиков, на что мы обращаем внимание, а что лучше игнорировать».
https://youtube.com/watch?v=Gf4okDx44W0
Выложили материалы с 72-го митапа, который прошёл 30-го января в Kaspersky.
Напомню, что на митапе прозвучали доклады:
- C++ Corehard Autumn 2018. Обучаем на Python, применяем на C++ (Павел Филонов, Kaspersky)
- NLP cookbook: анализируем тексты на Python с минимальными знаниями о машинном обучении (Пётр Ермаков, Lamoda / Datagym)
- Django в стартапе: от 0 до 150 000 строк кода, не жертвуя качеством (Фёдор Борщёв, ГдеМатериал)
Видео доступны на нашем канале: https://www.youtube.com/playlist?list=PLv_zOGKKxVpgnRTLQEmYmOfXjHTyVad0a
Слайды - на нашем сайте: http://www.moscowpython.ru/meetup/72/
#НеПереключайтеКанал

Сегодня в эфире доклад Олега Ермакова (ЦИАН) «Как мы делаем предсказуемо хорошие микросервисы»

«Мы в ЦИАН любим микросервисы: на C#, на JS и, конечно же, на Python. Когда создаешь микросервис в 50-й раз, уже видишь повторяющиеся шаги и примерно представляешь себе "минимальный джентльменский набор" того, что должно быть внутри.

Как программисты мы любим автоматизировать повторяющиеся задачи, и создали у себя небольшую фабрику по созданию микросервисов.

В докладе расскажу о нашем подходе к созданию микросервисов:
- генерацию базового шаблона;
- покажу, что скрывается в недрах каждого сервиса: нашу библиотеку "cian-core";
- о подходе к взаимодействию между сервисами, включая походы в базы данных;
- о логах и трассировке запросов;
- о том как конфигурируем, деплоим и мониторим микросервисы в продакшне».
https://youtube.com/watch?v=qv-l1oxZFmM
#НеПереключайтеКанал
Сегодня выкладываем доклад Ильи Лебедева (Bestsoctor.ru) «Как варить вкусный статический анализ кода»

«У вас настроен супер-стрикт-набор валидаторов кода, обязательная аннотация типов без Any и требования стопроцентного покрытия кода тестами? У меня тоже нет. Это не потому, что мы с вами бесполезные и непрофессиональные разработчики, а потому что надо дело делать, а не типы вылизывать.

В докладе я расскажу, как придумать и внедрить систему статического анализа, которая совмещает плюсы со всех сторон: позволяет релизить фичи быстрее, код делает лучше, а разработчиков дружнее. Покажу пару примеров и расскажу про свой опыт».
https://youtube.com/watch?v=Riylu4HngfI
#НеПереключайтеКанал

Сегодня делимся видео доклада «Async и await в production» Сергея Борисова (ДомКлик)

«В "Домклик" больше 50 Python-разработчиков, и мы используем асинхронное программирование с самого начала наших проектов. Польза от корутин с async и await огромна, но вместе с этой пользой приходят специфические сложности. Неожиданно для разработчиков течет память, не ловятся исключения, а доступные "асинхронные" библиотеки для типовых задач часто очень сырые.

В докладе я расскажу про наш опыт написания асинхронного кода, и как мы решаем возникающие трудности, начиная от отладки и заканчивая выбором тех или иных библиотек».
https://youtube.com/watch?v=6pjuJSvt2to
Moscow Python Conf++, считай, через месяц. У Программного комитета всё готово, а работа организаторов мероприятия и спикеров в самом разгаре. Пора подключаться и участникам!

Начнем подробно изучать расписание с доклада-введения — «Introduction to low-level profiling and tracing».

🗂 Christian Heimes — Core-разработчик CPython, член Python security team и Python Software Foundation, работает в Red Hat и специализируется на профилировании и ускорении Python-кода.
📆 27 марта в 16:00 в зале 3 Кристиан расскажет, как понять, почему код тормозит и что с этим делать.

📌 NB: Этот доклад отлично дополнит воркшоп Алексея Романова из Wargaming.
#НеПереключайтеКанал

Сегодня делимся докладом Владимира Пузакова (Rambler&Co) «Разработка плагинов к mypy»

«Mypy помогает нам писать качественный код. Но не со всеми ситуациями он может справиться в одиночку. Для решения этой проблемы в mypy есть плагины. В данном докладе будет рассказано о ситуациях, в которых их нужно писать. Я покажу, как писать свой плагин для решения этих проблем, какие инструменты есть в mypy для этого, и как тестировать свой плагин».
https://youtube.com/watch?v=l7hDWA5uC0A
🗂Андрей Светлов — Python Core Developer, разработчик asyncio и автор aiohttp.

🗓 Доклад Андрея традиционно посвящен асинхронности и называется «Многопоточность и async/await: подход разный, проблемы общие». Проблемы современных разработчиков с использованием асинхронного подхода далеко не новы. Копнув немного вглубь истории разработки, узнаем, как похожие проблемы решались 10, 20 лет назад, и попробуем понять, как с ними удобнее всего справляться сейчас.
#НеПереключайтеКанал

Сегодня выкладываем доклад Николая Фоминых (S7) «Делаем Dashboard для авиакомпании: Dash и не только».

«У нас в S7 много разных данных, например, мы собираем параметры наших самолетов и определяем лучшее время для техосмотра. Данные сложные, их много, показывать надо разным людям с разными целями. На ум сразу приходят Grafana и Dash, но действительно ли это лучшие решения?

Мы проанализировали много решений, и в докладе я расскажу об их сильных и слабых сторонах, а также области применения. Больше всего достанется нашему любимому Dash: пытаясь сделать на нем все, что нужно, мы набили все возможные шишки. И теперь хотим делиться!»
https://youtube.com/watch?v=mzIB5zxn6kg