VSCode + Python = ?
Microsoft обычно ругают. За баги операционной системы Windows, за проприетарность технологий и за желание заставить всех использовать браузер Edge. Но сегодня мы будем хвалить Microsoft, ведь она действительно вносит множество полезных улучшений в редактор исходного кода Visual Studio Code. Берите плед, устраивайтесь поудобнее и приятного чтения.
Новое в Python Extension для VSCode
Visual Studio Code славится своей функциональностью «из коробки», а за счет дополнений становится ещё мощнее. Одно из них, Python Extension, неделю назад получило крупное обновление. Взглянем детальнее на изменения.
В первую очередь обновление коснулось удобства работы с фрагментами кода. Языковой сервер Pylance теперь корректно определяет границы фрагмента кода и позволяет легко его выделить (Shift + Alt + Arrows). Свернуть нужный блок кода теперь тоже проще. Раньше определение границ блока было исключительно по отступам, из-за чего система часто ошибалась. Теперь эта функция смотрит ещё и на содержимое, что повысило точность.
Существенно изменился список доступных интерпретаторов. До обновления они никак не были упорядочены, для выбора приходилось каждый раз просматривать весь список, который при серьезной разработке мог быть довольно длинным. Сейчас они разбиты по категориям, что сделало поиск значительно удобнее.
Textual получил поддержку Windows
Чуть более недели назад TUI-фреймворк Textual получил экспериментальную поддержку Windows. Теперь его можно использовать не только в MacOS и Linux. В основе Textual лежит популярная библиотека rich, главная задача которой красивое форматирование текста непосредственно в терминале. События обрабатываются асинхронно (async/await), а UI-компоненты взаимодействуют друг с другом независимо.
Отличительная особенность Textual — подход к созданию макета очень похож на традиционную веб-разработку. Здесь используется CSS, а методы частично или целиком взяты из Vue и React. Полюбоваться на красивые приложения в терминале можно в видеоблоге разработчика.
Распознаем речь с NVIDIA NeMo
Технический прогресс иногда неотличим от магии. Писатели-фантасты предсказывали, что компьютеры начнут понимать человеческую речь и отвечать своим голосом. Развитие машинного обучения сделало инструменты по распознаванию речи доступными для всех желающих. Голосовые помощники поселились в наших домах и исполняют наши желания, словно джинны из арабской мифологии. Ну а у разработчиков появились удобные наборы инструментов, такие как NeMo.
NeMo — это сокращение от слов Neural Models. Разработанный компанией NVIDIA тулкит включает в себя модели автоматического распознавания речи (ASR), обработки естественного языка (NLP) и преобразования текста в речь (TTS). Тем не менее, эти модели всего лишь «полуфабрикат» и их ещё необходимо правильно подготовить к работе, выполнив процесс обучения (или дообучения для предварительно обученных моделей). В зависимости от количества пройденных итераций, точность распознавания значительно повышается.
Самостоятельное изучение NeMo стоит начать с отличной статьи, недавно опубликованной на Хабре. Там есть вся необходимая информация для успешного старта. Примеры кода имеют комментарии на русском языке, так что вы легко разберётесь с каждым этапом.
Ускоряемся в Cython
Если спросить любого разработчика, какой язык быстрее — Python или C — ответ будет однозначным. В большинстве случаев C будет значительно опережать Python по скорости. Cython — оптимизирующий статический компилятор, который попытался взять лучшее из двух миров. Он позволяет превращать код на диалекте Python в код на C и за счёт этого ускорить работу приложений. Но такой подход имел существенные недостатки в виде громоздкого и парадоксального синтаксиса.
Хорошая новость в том, что у Cython появился альтернативный синтаксис, названный «pure Python mode». Теперь можно использовать нативный код на Python и получить все те же преимущества в скорости. Ещё можно выполнить обратный трюк — код Cython, созданный в таком режиме, заработает и в обычном интерпретаторе Python, правда без существенного ускорения. Другим плюсом стала возможность задействовать привычные линтеры и анализаторы Python для работы с модулями Cython.
Разумеется, новый синтаксис работает не во всех случаях также, как и обычный Cython. Есть ограничения в виде отсутствия поддержки упакованных структур и перечислений C. Также не получится напрямую вызывать функции C, но остаётся возможность выборочного импорта.
Генерируем OpenAPI с drf-spectacular
Создание API — частая задача. Чтобы решить её эффективно можно использовать инструменты, генерирующие API. Пристальное изучение наиболее популярных генераторов API привело наших коллег к неутешительным выводам. Стандартный Django Rest Framework годится лишь для совсем тривиальных задач и мало что умеет. Ещё один генератор drf-yasg хорошо справляется со своими обязанностями, но его тяжело расширять.
Приятным открытием стала библиотека drf-spectacular, которая полностью реализует спецификацию OpenAPI 3.0 и активно поддерживается. Она представляет собой значительно модифицированный форк DRF со множеством плюшек, таких как django-polymorphic, DjangoOAuthToolkit и многих других. Так что советуем попробовать этот инструмент. Уверены, вам понравится.
Обучение
Курс Python в Evrone Academy
60 учебных модулей
Если вы думаете о смене работы или хотите стать частью нашей команды, но у вас недостаточно коммерческого опыта, то теперь можно учиться прямо в Evrone. А после — попасть к нам на оплачиваемую стажировку.
Основа обучения в Evrone Academy — наши высокие требования к разработчикам и опыт в проектах. Мы записали лекции, подготовили текстовые версии, добавили практические задания — это позволит вам подтянуть знания до middle-уровня. На стажировке мы дополним теорию практикой, а после — добро пожаловать на «боевой» проект.
Сейчас академия доступна в режиме early access — можно пройти базовые части по Python или Ruby. Но мы уже готовим новые материалы и практические задания, подписывайтесь на нас в соцсетях, чтобы не пропустить обновления!
Конкурсы для разработчиков
Ruby Quiz
до 28 февраля 2022
Хороший программист обычно знает несколько языков, так что предлагаем проверить себя в нашем новом квизе по языку Ruby.
Его составляли наши опытные разработчики, так что придётся хорошо подумать. Внутри семь вопросов и несколько вариантов ответов, из которых лишь один правильный.
Среди тех, кто правильно ответит на все вопросы мы разыграем приятные призы: Apple AirPods Pro, Яндекс.Станцию и увлажнитель от Electrolux.
Митапы
Python meetup
19:00
Рады сообщить, что у нас запланирован Python Meetup, который пройдёт 13-го апреля. Наш DevRel летит с докладом на PyCon DE и, если звезды сложатся удачно, то онлайн трансляция митапа будет проведена с главной европейской Python-конференции! Детальная информация о мероприятии будет опубликована позже, следите за нашими новостями.
Вакансии
Evrone
Мы открыты для новых Python-разработчиков. Evrone работает удалённо с первого дня, участие в Open-source проектах оплачивается, а расти в грейдах можно с помощью честной системы проверки навыков и менторства.
Не забывайте подписываться на наш дайджест, где вы будете регулярно находить полезные обзоры и новости мира разработки, а также добавляйте нашу RSS-ленту в свой любимый RSS-агрегатор, чтобы не пропустить выход новых материалов.