Хитрый Питон
2.45K subscribers
4 photos
199 links
Я много читаю и делюсь в этом канале заинтересовавшими меня материалами, в основном про Python. @korneevm
Download Telegram
Channel created
Channel photo updated
Когда я занимаюсь программой курса Learn Python всегда остается множество вещей, про которые я хотел бы расскзать, но которые не умещаются в программу. Поэтому я сделал отдельный канал, на котором буду регулярно - по вторникам и четвергам выкладывать короткие видео про рзные интересные штуки в python.

В первом видео я рассказываю про разницу между изменяемыми и неизменяемыми типами данных https://www.youtube.com/watch?v=hSdZxrpTkh0
Видео не связанное напрямую с Python, но показалось мне интересным, так как я сейчас столкнулся с похожей задачей. До тех пор, пока у нас все части системы общаются по REST проектирование и документированние api - довольно простая задача. Когда в системе появляется, например, grpc - все становится сложнее. В видео расказывается о унифицированном подходе проектирования/документирования для таких случаев https://www.youtube.com/watch?v=oG6-r3UdenE&feature=youtu.be
На realpython вышел новый туториал - как написать игру в "камень-ножницы-бумага". Кажется, это очень просто. Но по мере работы с туториалам игра усложняется к камню-ножницам и бумаге присоединяются еще два актора (те, кто смотрел Теорию большого взрыва в курсе, о чем речь, для остальных будет сюрприз). Количество комбинаций возрастает и приходится переписывать код, чтобы избавиться от if/elif-ов - https://realpython.com/python-rock-paper-scissors/
Если вы работаете с Django на достаточно большом проекте, то стандартный StatReloader, который перезапускает сервер, когда вы изменили какой-то файл может создавать дополнительную нагрузку на процессор (и батарею ноута, когда работаешь от батарейки). В качестве альтернативы можно использовать Watchman, который запускается как сервис и получает информацию о изменении файлов от операционки. Вот тут можно будет почитать подробнее https://adamj.eu/tech/2021/01/20/efficient-reloading-in-djangos-runserver-with-watchman/
Хранение конфигурации в переменных окружения - один из 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