Хитрый Питон
2.51K subscribers
4 photos
203 links
Я много читаю и делюсь в этом канале заинтересовавшими меня материалами, в основном про Python. @korneevm
Download Telegram
В последнее время монорепозитории становятся модными, по крайней мере я все чаще вижу обсуждения вроде "давайте все переходить на монорепы". Вероятно для больших компания (таких как Google и Facebook) это имеет смысл, но вот мой личный опыт работы с монорепами говорит, что они требуют сильно больше усилий по настройке и написанию тулов, чтобы можно было нормально работать.

В этой статье авторы продвигают идею монорепозиториев, постоянно ссылаясь на Google и Facebook. Несмотря на то, что они явно влюблены в идею монореп и из-за этого несколько необъективны, я все-таки рекомендую потратить время на статью:

1. Если просто интересно, что такое монорепа и как с ней работать
2. Там показана действительно интересная работа со сложными github actions и я для себя узнал много полезного

https://monadical.com/posts/from-chaos-to-cohesion.html
Разработка REST Api кажется простым делом - перекладывай json-чики с места на место и все дела. Но когда ты сталкиваешься с плохо спроектированными Api-шками и начинаешь задумываться о том, как спроектировать хорошо, тут то и открывается бездна. Особенно интересно то, что каждый знает "как правильно проектировать Api" и часто даже в небольшой команде начинаются жаркие споры и каждый тянет одеяло на себя.

Вот еще одна из миллиона статей на тему "как делать правильно", которая мне понравилась взвешенным подходом и подробной аргументацией к каждому пункту. Если вы работаете на проектах, где нет внутреннего стандарта на Api, то рекомендую почитать https://github.com/stickfigure/blog/wiki/How-to-(and-how-not-to)-design-REST-APIs
Сегодня будет традиционный ежемесячный эфир про новости из мира Python, к сожалению я сегодня не смогу прийти на эфир, но зато у нас будет гость - Сергей Васечко, член программного комитета Podlodka Python. Темы выпуска:

🟡Релиз Django Ninja 1.0
🟡PEP 734 — сабинтерпретаторы в stdlib
🟡Nvidia показала cudf.pandas (GPU)
🟡Опрос Python-разработчиков от JetBrains
🟡PyPi прошел первый аудит безопасности
и другие новости за последний месяц.

➡️Когда: 1 декабря в 14:00 по Москве.
➡️Где: онлайн и в записи по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
Вышел Django 5.0. Из более-менее интересных изменений - поддержка database defaults для полей моделей, в целом выглядит как "технический" релиз https://www.djangoproject.com/weblog/2023/dec/04/django-50-released/
Сегодня в 14:00 по МСК встретимся в прямом эфире Moscow Python Podcast с Андреем Столбовским и обсудим:
🟡лучшие практики в мониторинге;
🟡архитектуру мониторинга на примере Yandex Cloud Monitoring;
🟡как устроены системы мониторинга под капотом.

➡️Когда: 15 декабря в 14:00 по Москве.
➡️Где: онлайн и в записи по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
Я в последнее время активно играюсь с FastStream — это такой приятный фреймворк для работы с очередями и наследник FastKafka. Сейчас уже поддерживает Kafka, Rabbit и NATS и вот в последнем релизе они добавили поддержку redis. Если вам нужен фреймворк для написания продюсеров/консьюмеров то прямо рекомендую посмотреть https://github.com/airtai/faststream
Сегодня в 14:00 по МСК встретимся в прямом эфире Moscow Python Podcast с Михаилом Вознесенским, руководителем группы разработки почтовых решений RuPost. В этот раз зарубимся про комментарии в коде и надо ли их писать.

➡️Когда: 22 декабря в 14:00 по Москве.
➡️Где: онлайн и в записи по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
Привет, сегодня будем записывать финальный выпуск Moscow Python Podcast за 2023 год:

в 14:00 по МСК как обычно в прямом эфире обсудим самые интересные новости года. Пишите в комментарии, что вам больше всего запомнилось за этот год? И какой выпуск больше всего понравился.

➡️Когда: 29 декабря в 14:00 по Москве.
➡️Где: онлайн и в записи по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
Любопытное исследование вопроса - как побыстрее прочитать много данных из Excel в питоне. Я открыл для себя много нового - например я раньше не слышал про python-calamine и не знал что DuckDb можно использовать для чтения экселя. Идеального универсального решения как обычно не завезли - например, calamine супер-быстрый, но при этом там нет возможности читать построчно итератором - все загружается сразу в память. В общем если вам приходится работать с экселем - рекомендую почитать https://hakibenita.com/fast-excel-python
Привет! Как вы возможно заметили, в январе мы с коллегами решили немного отдохнуть от записи подкаста. Январь закончился, мы немного отдохнули и очередной новостной Moscow Python Podcast пройдет завтра, в 14:00 по МСК. Темы:

🟡JIT-компиляция в Python 3.13;
🟡релиз Django 5.0;
🟡Jetbrains выпустили отчет State of Developer Ecosystem 2023;
🟡cамые популярные библиотеки 2023;
🟡2FA для публикаций PyPI.

➡️Когда: 2 февраля в 14:00 по Москве.
➡️Где: онлайн и в записи по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
Ребята, которые сделали ruff, выпустили свой тул для работы с зависимостями для python - uv. Они позиционируют его как замену pip, pip-tools и virtualenv. Написан на расте, поэтому работает быстро.

Также они взяли на себя дальнейшую поддержку rye (который изначально сделал Армин Ронахер, автор flask) и судя по всем планируют постепенно эти проекты объединить в один.

Выглядит вкусно, попробую поиграться с uv на пет-проектах.

Анонс: https://astral.sh/blog/uv
Репозиторий проекта: https://github.com/astral-sh/uv
Легкое чтение на выходные: автор напоминает, что прежде, чем делать pip install klevaya_liba желательно сначала посмотреть, насколько эта либа живая.

В качестве примера приводит Flask-Mail, у которого последний коммит был в 2014 году, но при этом почти полмиллиона скачиваний в месяц.

Это значит, что найденные проблемы в безопасности не исправляются, а совместимость с новой версией питона может отвалиться в любой момент (например, как это случилось с python-kafka и 3.12).

Статья https://freelancefootprints.substack.com/p/abandoned-code-the-hidden-risks-of
На этой неделе проведём выпуск подскаста с Никитой Соболевым, и обсудим, как стать core-разработчиком CPython и в что интересного в мире разработки языка программирования. Этот выпуск будет сегодня, в четверг, а не в пятницу как обычно

➡️Когда: 22 февраля в 14:00 по Москве.
➡️Где: онлайн и в записи по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
Привет!

В этот раз новостной выпуск Moscow Python Podcast будет сдвинут - вместо пятницы проведенм сегоня в 14:00 по МСК. В этом месяце новостей довольно мало, обсудим:
🟡Инструмент для работы с зависимостями для python uv;
🟡PEP 740 — возможность добавление работы с цифорвыми подписями для реестров пакетов типа PyPI;
🟡Перспективы Python в fullstack веб-разработке.

➡️Когда: 28 февраля в 14:00 по Москве.
➡️Где: онлайн и в записи по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
Вышел ruff 0.3.0 - которую авторы позиционируют как первую стабильную production-ready версию линтера. Что нового:

- новый style guide, основная идея которого - быть ближе к тому, как форматирует black
- улучшенная поддержка частичного форматирования - когда надо отформатировать не весь файл, а только выделенные строки в ide или только изменённые строки в пре-коммите
- автоматическое форматирование плейсхолдеров внутри f-строк

Подробности в блоге astral https://astral.sh/blog/ruff-v0.3.0
Так как сегодня выходной, вот вам статья, которая сделала мой сегодняшний день. Гугловский Gemini Pro отказался писать кеширущий декоратор потому, что кеширование может привести к проблемам с безопасностью.

И в принципе он не так уж не прав - например кеширования пароля в открытом виде действительно может привести к неожиданным побочкам. Думать, что и как ты кешируешь (да и в целом думать) - полезно, но вот объявлять кеширование в целом security risk-ом — это что-то новенькое 😉

У меня нет доступа к gemini pro, но в целом я готов поверить в такое поведение, пока все что показывал Гугл как минимум "странное" https://new.pythonforengineers.com/blog/so-evidently/
Forwarded from Moscow Python (Valentin Dombrovsky)
Друзья, хотим рассказать замечательную новость - конференции про Python от нашего сообщества - быть!

Как и в прошлом году, мы встречаемся на Positive Hack Days - 26-го мая мы проведём там Python Day.

Спикеры и гости конференции Python Day будут иметь доступ ко всем техническим трекам на Positive Hack Days в течение всего времени проведения фестиваля.

Планируем целый день докладов и дискуссий про Python. И поэтому мы открываем CFP - ждём ваших заявок на доклады до конца марта.

Мы рассчитываем, что на Python Day придёт порядка 500 профессиональных разработчиков на Python (Middle, Middle+ и Senior) и очень хотим сделать интересную программу для них.

Мы не ограничиваем темы докладов - ожидаем от вас лишь интересных кейсов и знаний в сфере разработки на Python. Время на выступление - порядка 40 минут + 10 минут на вопросы из зала.

ВАЖНО: Чем раньше вы подадите заявку, тем больше времени у ПК будет на её рассмотрение.

Регистрация на само мероприятие откроется чуть позже - следите за новостями.

Заявки на доклады можно подавать тут:
https://docs.google.com/forms/d/e/1FAIpQLSdfWqy2eSlLOcpR6BzHp0ypUqFSBBWrUBgb0ZveD1oKPqOmoQ/viewform
Как потренироваться в прохождении собеседований по алгоритмам?

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

Такие моковые собесы пройдут уже на следующей неделе по следующим направлениям:
11.03 в 19:00 — Go
12.03 в 17:30 — C++
13.03 в 19:00 — JavaScript
14.03 в 17:30 — Python


😎 Собеседования проведут TeamLead из Яндекса, Senior из Motional и CTO Berlin Technological Academy

По итогам мероприятия вы:

✔️ посмотрите, как проходят собеседования
✔️ получите возможность пройти собес и получите фидбэк по вашему опыту и резюме
✔️ получите ответы на волнующие вопросы

Кому подойдет?

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

Можно зарегистрироваться:

- В качестве зрителя 🍿
- В качестве собеседуемого на интервью 🥷

Зарегистрироваться можно по ссылке, чтобы накануне пришли напоминания.
Please open Telegram to view this post
VIEW IN TELEGRAM
psycopg3 вышла уже почти три года назад, но я уверен, что многие пока по разным причинам сидят на psycopg 2. Вот тут померяли скорость работы psycopg2 vs psycopg3 и результаты на мой взгляд получились неоднозначные:

1. В обычных select from запросах psycopg3 в три раза быстрее psycopg2. Кажется для большинства проектов, у которых чтения больше записи переход вполне оправдан
2. А вот на всяких более редких кейсах типа batch-записи или получения blob-ов из базы тройка проигрывает двойке

В общем я задумался о том, чтобы проекты, где под капотом psycopg начать переводить на третью версию https://www.timescale.com/blog/psycopg2-vs-psycopg3-performance-benchmark/
Недавно у меня возникла рабочая задача поревьюить кодовую базу - не очень большую, но и не микросервис - порядка 16 тысяч строк. И по результатам мне нужно было сформулировать свои рекомендации и как-то их аргументировать. И вот я понимаю, что во многих местах код переусложнен, но нужно это как-то аргументировать.

И вот тут мне прямо хорошо зашла тула https://github.com/rohaquinlop/complexipy - это штука для оценки cognitive complexity (можно почитать тут https://habr.com/ru/articles/565652/).

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

Во многих топовых компаниях алгоритмы стали неотъемлемой частью собесов, а для разработчиков — головной болью 💪

Если вы уже прорешали по сотне задачек на LeetCode, но все еще не разобрались, как применять алгоритмы на практике и справляться с незнакомыми заданиями на собеседованиях, тогда мы идем к вам 😁

На стримах вы сможете посмотреть, что спрашивают, как разбирают ответы участников, получить знания и стать увереннее в себе.

Можно позадавать вопросы на трансляции, а можно подать заявку на участие и пройти собеседование в прямом эфире 😉

Сегодня вечером можно прийти посмотреть на первое собеседование по JavaScript по ссылке 🙂 Будет полезно и интересно ☺️
Please open Telegram to view this post
VIEW IN TELEGRAM