Хитрый Питон
2.51K subscribers
4 photos
203 links
Я много читаю и делюсь в этом канале заинтересовавшими меня материалами, в основном про Python. @korneevm
Download Telegram
Хранение конфигурации в переменных окружения - один из 12 принципов создания качесвтенных веб-приложений https://12factor.net/ru/. Если вы еще не используете environment variables - эта статья расскажет как и зачем это делать https://doppler.com/blog/environment-variables-in-python
В статье есть некоторое количество рекламы проекта над котором работает автор, но это не делает ее хуже.
Я как-то пропустил новость о том, что вышел новый mypy под python 3.9. Из интересного:
- понимает конструкции типа list[int] которые появились в 3.9
- понимает X | Y вместо Union[X, Y]
- наконец понимает модули без init.py
Подробности тут http://mypy-lang.blogspot.com/2021/01/mypy-0800-released.html
В большинстве веб-приложений нам приходится сталкиваться с задачей аутентификации пользователя - т.е. как получить от него логин/пароль, как их проверить и как после этого работать с ним. Хорошая статья, где преечислены основные виды аутентификации. используемые сейчас в веб-сервисах https://testdriven.io/blog/web-authentication-methods/
Статья как обычно на английском, с примерами кода и ссылками на бибилиотеки для flask/django/fastapi
Интересный материал про то, как сэкономить память при загрузке данных в pandas. И почему при объединении нескольких датафреймов можно получить ее неэффективное использование. Я не часто в последнее время использую pandas, но было интересно прочитать https://drawingfromdata.com/pandas/concat/memory/exploding-memory-usage-with-concat-and-categories.html
Интересная статья про внутренние оптимизации в cpython. В статье рассказано, как работает свертка констант (constant folding) - когда выражение вычисляется на этапе генерации байткода и в рантайме используется вычесленный результат. Будет интересно тем, кто хочет знать как все устроено внутри. Статья на английском и с некоторым количесвтом кода на C https://arpitbhayani.me/blogs/constant-folding-python
При написании сложных приложений очень важно помнить о целостности данных и многие проверки можно переложить на уровень базы данных. В статье показано несколько способов описания комплексных ограничений целосности (constraints) в моделях Django https://www.laac.dev/blog/database-constraints-in-django/
В веб-приложениях часто требуется прикрутить логин через соцсети. На testdriven.io вышел хороший туториал, который в общих чертах рассказывает, как работает OAuth и дается пример подключения социального логина к Flask-приложению https://testdriven.io/blog/flask-social-auth/
В Python есть очень удобная функция enumerate(), которая помогает, к примеру, пронумеровать элементы в цикле. Часто особенно новички в языке, не зная о этой возможности, придумывают обходные пути. В этом видео я покажу как использовать enumerate https://www.youtube.com/watch?v=xysJ0r2Iv_Q
Интересная и подробная статья о том, как python работает с памятью при использовании multiprocessing. Будет полезна, если вы используете какие-то большие readonly-объекты в вашем API. ну и в целом интересно, как все устроено под капотом https://luis-sena.medium.com/understanding-and-optimizing-python-multi-process-memory-management-24e1e5e79047
В питоне нашли ошибку связанную с переполнением буфера при работе с float-ами. Пишут, что в каких-то случаях баг может дать атакующему возможность удаленного исполнения кода. Рецепт исправления - обновиться до 3.8.8 или 3.9.2. Я пошел обновлять свои контейнеры с питоном https://nvd.nist.gov/vuln/detail/CVE-2021-3177
Принято считать, что Django медленная и в общем это действительно так. Но зачастую проблема со скоростью возникает не из-за фреймворка как такового, а из-за "наивной" работы с ним, когда мы ожидаем, что фреймворк сделает всю работу за нас (спойлер - не сделает). В статье автор на примере из жизни разбирает часто встречающуюся проблему - я написал код, и он безбожно тормозит. Думаю, более-менее опытные разработчики еще в начале статьи догадаются, в чем там дело. Но в любом случае прочитать полезно https://tinystruggles.com/tech/django_slowness_traps/
19-20 марта в Сочи пройдет Pycon Wekend. Я там буду рассказывать о том, как мы у себя используем различную автоматику, чтобы делать жизнь разработчиков лучше.
Также в программе:
12 докладов, lightning talk и мастер-классы.
- Денис Катаев (Тинькофф): «Почему вам не нужен асинхронный ORM»
- Николай Марков (Aligned Research Group LLC): «Экзотические встроенные модули Python»
- Григорий Петров (Evrone): “Почему python медленный?”
- Антон Патрушев (Spherical): «Автоматизируй это: как использовать invoke для уменьшения хаоса»
- Илья Беда (Beda.software): «Python on FHIR®»
- Алексей Буров (QuantumSoft): «Как без боли использовать Git Precommit Hook»
- Никита Дмитриев (Яндекс): «Новинки в CatBoost»
И другие классные спикеры!
Полная программа и другие подробности на сайте https://pycon-weekend.ru/
Увидимся!