Библиотека Python разработчика | Книги по питону
19.5K subscribers
1.05K photos
391 videos
82 files
988 links
Полезные материалы для питониста по Фреймворкам Django, Flask, FastAPI, Pyramid, Tornado и др.

По всем вопросам @evgenycarter

РКН clck.ru/3Ko7Hq
Download Telegram
Пишем DNS сервер на python

Наша цель - реализовать игрушечный DNS сервер.

Что такое DNS сервер ? Это программа, которая умеет определять IP-адрес домена.
Вот как выглядит интерфейс командной строки сервера, который мы собираемся написать:

$ python3 resolve.py example.com
93.184.216.34


https://implement-dns.wizardzines.com/

Код https://github.com/jvns/dns-weekend

@BookPython
🎨 Диаграмма как код для прототипирования архитектур облачных систем

Diagrams позволяет рисовать архитектуру облачной системы в коде на языке Python. Она была разработана для создания прототипов новой архитектуры системы без использования каких-либо инструментов проектирования. Кроме того, с помощью Diagrams можно описать или визуализировать существующую архитектуру системы. В настоящее время Diagrams поддерживает основных провайдеров, включая: AWS, Azure, GCP, Kubernetes, Alibaba Cloud, Oracle Cloud и т.д.. Также поддерживаются узлы On-Premise, SaaS и основные фреймворки и языки программирования.

https://github.com/mingrammer/diagrams

👉 @Githublib
Алгоритмы и структуры данных на Python с примерами кода + видео.

Алгоритм Кнута-Морриса-Пратта (КМП-алгоритм) | Алгоритмы на Python
Алгоритм Бойера-Мура-Хорспула | Алгоритмы на Python
Алгоритм Дейкстры (Dijkstra’s algorithm) | Алгоритмы на Python
Алгоритм Флойда (Floyd’s algorithm) | Алгоритмы на Python
Алгоритм Форда-Фалкерсона | Алгоритмы на Python
Алгоритм Краскала (Kruskal’s algorithm) | Алгоритмы на Python
Алгоритм Прима (ближайшего соседа) | Алгоритмы на Python
Сортировка выбором | Алгоритмы на Python
Сортировка вставками | Алгоритмы на Python
Сортировка пузырьком (метод всплывающего пузырька) | Алгоритмы на Python
Слияние двух упорядоченных списков | Алгоритмы на Python
Быстрая сортировка слиянием (merge sort) | Алгоритмы на Python
Быстрая сортировка Хоара | Алгоритмы на Python
Стек типа LIFO (Last-In-First-Out) | Алгоритмы на Python
Делаем очередь (queue) | Алгоритмы на Python

https://bookflow.ru/algoritmy-i-struktury-dannyh-na-python/

@BookPython
Управление производительностью с Python 3.12

В Python 3.12 появилась поддержка perf profiling. В этой статье увидим, как это помогает сократить время выполнения Python-скрипта с 36 секунд до 0,8. Мы рассмотрим Linux-инструмент perf, графики Flame Graph, посмотрим на дизассемблированный код и займемся поиском ошибок. Код из статьи можно посмотреть здесь.

https://www.petermcconnell.com/posts/perf_eng_with_py12/

@BookPython
Привязки Python для оптимизации производительности

В статье описываются методы ускорения кодовой базы Python путем раскрытия распараллеленных функций C++ с помощью PyBind. Затем анализируются результаты оптимизации, в ходе которой распараллеливание одной 40-строчной функции в 700-строчной программе дало до 3-кратного сквозного ускорения.

https://alexhagiopol.github.io/posts/2023/01/python-bindings/

@BookPython
Линейная алгебра в Python: обратные матрицы и метод наименьших квадратов.

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

В частности, линейные модели играют важную роль в различных реальных задачах, и scipy.linalg предоставляет инструменты для их эффективного вычисления.

https://realpython.com/python-linear-algebra/

@BookPython
5 лайфхаков Python, которые сделают ваш код более читабельным и элегантным

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

1. Избегайте вложенных циклов с помощью product
2. Оператор морж (:=) или способ записывать данные в переменную о котором вы не знали
3. Самый легкий способ мерджить словари
4. Используем * для мерджа списка, кортежа и множества в одну строчку
5. Используем встроенные функции в Python для написания стандартной логики

Rus https://habr.com/ru/articles/714820/

Eng https://medium.com/techtofreedom/9-fabulous-python-tricks-that-make-your-code-more-elegant-bf01a6294908

@BookPython
Подборка CMS

django-cms - Корпоративная CMS с открытым исходным кодом на основе Django.
feincms - Одна из самых продвинутых систем управления контентом, построенная на Django.
indico - Многофункциональная система управления событиями, созданная в CERN.
Kotti - Высокоуровневый питонический фреймворк для веб-приложений, построенный на Pyramid.
mezzanine - Мощная, последовательная и гибкая платформа управления контентом.
plone - CMS, построенная на базе открытого сервера приложений Zope.
quokka - Гибкая, расширяемая, небольшая CMS на базе Flask и MongoDB.
wagtail - Система управления контентом на основе Django.

@BookPython
Протоколы в Python

В Python 3.8. появилась новая примечательная возможность — протоколы (protocols). Протоколы — это альтернатива абстрактным базовым классам (abstract base classes, ABC). Они позволяют пользоваться структурной подтипизацией (structural subtyping), то есть — осуществлять проверку совместимости классов исключительно на основе анализа их атрибутов и методов. В этом материале мы поговорим о протоколах в Python и разберём практические примеры работы с ними.

Rus https://habr.com/ru/companies/wunderfund/articles/751424/

Eng https://towardsdatascience.com/protocols-in-python-110943832d98

@BookPython
Python backend

Python - Архитектура кода
Python - Базы данных и миграции
Python - Тестирование
Python - Тестирование
Нагрузочное тестирование
Нагрузочное тестирование (лайвкодинг)
Девопс, деплой, CI/CD. Часть 1
Девопс, деплой, CI/CD. Часть 2
Архитектура распределенных систем
Python - Дебаг - логирование - профилирование
Код-ревью
Python - Асинхронное программирование. Часть 1
Python - Асинхронное программирование. Часть 2
Отбор в IT компанию
Лекция Практики разработчиков
Интенсив по алгоритмам. Введение
Интенсив по алгоритмам. Разбор ДЗ 2

Все видео доступны на youtube

@BookPython
Как имитировать разрыв соединения с базой данных для тестирования в Django

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

Это означает, что где бы мы ни вызывали Model.objects.filter(), Model.objects.all() или connection.cursor(), операция должна завершиться неудачей.

https://neilkakkar.com/test-database-connection-django.html

@BookPython
Объект многоточие в Python

Как-то раз я наткнулся на такой фрагмент кода на Python:

class CustomException(Exception):
...


Сначала я решил, что это просто какой-то псевдокод. В Python для заполнения тела пустой функции, которая еще не реализована, обычно используется ключевое слово pass. Я подумал: «здесь указано, что далее будет больше кода, но в этом месте код сокращен, чтобы просто понять идею». Следовательно, использование ключевого слова pass означало бы, что что-то еще не реализовано. Больше я об этом не задумывался, но иногда использовал сам, чтобы объяснить коллегам определенную концепцию.

https://florian-dahlitz.de/articles/what-is-pythons-ellipsis-object

@BookPython
Личный путь и опыт в становлении Python разработчиком

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

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

Кого-то данная статься вдохновит начать свой собственный путь в разработке, а кому-то будет интересно прочитать историю успешного кейса входа и закрепления в ИТ.

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

https://habr.com/ru/articles/717424/

@BookPython