It’s…
Мышление — боль. Думать — неприятно. Для этого надо прилагать усилия, это одна из фундаментальных особенностей нашего мозга. Так что мы подумали за вас, собрав наиболее интересные материалы этого месяца и разместили их здесь, в нашем дайджесте. Вашему мозгу это точно понравится, приятного чтения!
Evrone Python Guidelines update
С open source у нас давняя любовь: мы считаем, что должны делать свой вклад, раз уж используем свободно распространяемые инструменты в проектах. Например, уже больше года создаём и дополняем гайдлайны по созданию хорошего Python-кода. Все советы в репозитории проекта базируются на опыте разных проектов в Evrone. Мы декларируем простые принципы написания кода:
- Поддерживаемость (представьте, сможете ли вы понять свой код через год или через два)
- Простота (между сложным и простым решением следует выбрать простое)
- Очевидность (представьте, когда подключится новый программист, насколько ему будет понятно, почему именно так написан этот код)
Они стали частью нашей работы, а их применение делает жизнь распределенных команд проще. Можно рассматривать их как воплощение знаменитого The Zen of Python. Актуальная версия Evrone Python Guidelines теперь доступна на русском и английском языках.
Если вам понравилась эта инициатива, поддержите нас звёздочкой на GitHub. Давайте сделаем мир чуточку лучше и будем соблюдать эти принципы вместе.
Bloomberg Python Memory Profile
Отличной новостью нас порадовала компания Bloomberg. Их Engineering департамент выложил в открытый доступ собственную разработку — профилировщик памяти для Python. Инструмент называется memray, исходный код доступен в репозитории на GitHub. Он умеет отслеживать потребление памяти в коде, интерпретаторе Python и нативных модулях расширения.
Количество отслеживаемой информации впечатляет. memray использует подход отслеживания функций и умеет в отчёты. Снижение производительности при этом незначительно. Помимо потоков, Python может обрабатывать нативные потоки, например, C++ в расширениях C. Документация с примерами выложена на сайте проекта.
Из существенных минусов можно отметить отсутствие кроссплатформенности. Работает профилировщик только на Linux.
3.11b1 — что нового
Представлена первая из четырёх запланированных бета-версий Python 3.11. Тестирование продлится до 2-го августа этого года, когда выйдет первый релиз-кандидат. Если вам хочется внести свой вклад в разработку, тестируйте и сообщайте о найденных ошибках в баг-трекер.
Грядущее обновление до 3.11 должно значительно увеличить производительность. Новая версия эталонного интерпретатора CPython станет быстрее на 10-60%. Вот некоторые ключевые особенности:
- более точная локализация ошибок (PEP 657);
- улучшенная обработка исключений (PEP 654);
- упрощенный способ аннотирования возвращающих экземпляр своего класса (PEP 673);
- вариативные дженерики (PEP 646);
- синтаксический анализ формата TOML (PEP 680);
- произвольный буквенный тип строки (PEP 675).
Полный список изменений есть в changelog.
Сила f-strings в Python
Martin Heinz, DevOps-инженер в ΙΒΜ, в своей статье на Medium предложил задуматься о такой крутой фиче, как f-strings. Этот способ форматирования впервые появился (PEP 498) в версии 3.6. Чаще всего его применяют для форматирования чисел. Но мало кто задумывается, что с помощью f-strings удобно отображать дату/время. Она будет выглядеть также, как если бы вы использовали метод datetime.strftime.
Теперь к более интересному. С версии 3.8 появилась возможность отображения имени переменной вместе с её значением. Например, вот такая строчка print(f"x = {x}, y = {y}") напечатает x = <значение>, y = <значение>. Важное примечание: пробелы также учитываются.
Простые арифметические операции поддерживаются непосредственно в строках, что делает возможным такой трюк, как print(f"{x} + {y} = {x + y}"). Вместе с этим f-strings позволяют форматировать текст с помощью Format Specification Mini-Language. Осторожно — изучение всех возможностей f-strings может сделать из вас волшебника.
Обучение
Курс Python в Evrone Academy
60 учебных модулей
Если вы думаете о смене работы или хотите стать частью нашей команды, но у вас недостаточно коммерческого опыта, то теперь можно учиться прямо в Evrone. А после — попасть к нам на оплачиваемую стажировку.
Основа обучения в Evrone Academy — наши высокие требования к разработчикам и опыт в проектах. Мы записали лекции, подготовили текстовые версии, добавили практические задания — это позволит вам подтянуть знания до middle-уровня. На стажировке мы дополним теорию практикой, а после — добро пожаловать на «боевой» проект.
Сейчас академия доступна в режиме early access — можно пройти базовые части по Python или Ruby. Но мы уже готовим новые материалы и практические задания, подписывайтесь на нас в соцсетях, чтобы не пропустить обновления!
Митапы
Python meetup
19:00
Рады сообщить, что у нас запланирован Python Meetup, который пройдёт 25-го мая. Детальная информация о мероприятии будет опубликована позже, следите за нашими новостями.
Вакансии
Evrone
Мы открыты для новых Python-разработчиков. Evrone работает удалённо с первого дня, участие в Open-source проектах оплачивается, а расти в грейдах можно с помощью честной системы проверки навыков и менторства.