TG Telegram Group Link
Channel: DevBrain
Back to Bottom
​​Вы приняты

Многие из вас уже учились в Школе Сильных Программистов — это ребята, которые сделали курсы «Асинхронная Архитектура» и «Стать Тимлидом».

Теперь Федя с Марьяной запускают курс на максимально актуальную сейчас тему — как найти работу за рубежом. На курс позвали чувака, который уже 4 года нанимает инженеров в Мюнхене, и сам переехал в Германию из Красноярска в 2014 году. Обещают помочь с линкедин-профилем, провести мок-интервью и дать обратной связи от себя и других студентов.

Обучение стартует 26 мая, продлится три недели и затронет весь цикл трудоустройства — от выбора компании до оценки адекватности оффера.

Записаться →

P.S. По промокоду devbrain10 скидка 10% до 18 мая.
👍4👎2🤔1
Релиз первой альфы Django 4.1

Вышла первая альфа-версия Django 4.1: https://www.djangoproject.com/weblog/2022/may/18/django-41-alpha-1-released/

Альфа-релиз подразумевает feature-freeze, а ближайшая бета-версия выйдет в конце июня. Финальный же релиз намечается на начало августа. Отмечу, что Django 4.1 это не LTS релиз, LTS-версией будет Django 4.2, которая выйдет в августе 2023 года.

Что же примечательного в Django 4.1?

1. Class-based views стали асинхронными (ранее асинхронными были только функции, function-based views).

2. Появился асинхронный интерфейс для Django ORM, но отмечу что разработчики лишь скрыли под капотом вызовы запросов к базе через sync_to_async. Проще говоря, синхронные запросы к БД запускаются в отдельных потоках в рамках eventloop. У ORM-методов появились свои асинхронные аналоги с приставкой a:

Примеры:
- Book.objects.aget()
- Book.objects.afirst()

3. Прекращение поддержки PostgreSQL ниже 11 версии. Django 4.1 поддерживает только PostgreSQL 11 и выше.

4. Запрет вызова logout через HTTP GET метод. Если у вас на сайте есть кнопка выхода, проверьте что вы это делаете через POST запрос (исправьте при необходимости).

5. Прекращается поддержка кэш-бэкенда для memcached

Более подробную информацию о фичах и обратно несовместимых изменениях можно почитать на сайте: https://docs.djangoproject.com/en/dev/releases/4.1/

А вы используете Django в своих проектах/на работе?
🔥11👍7
Видосы с прошедшего PyCon US 2022 подъехали: https://bit.ly/3wF0qSV
👍8
Forwarded from DataEng
Про таймауты и внешние API

Хорошей практикой при работе с внешними сервисами я считаю явное указание таймаутов ожидания соединения и ответа от хоста. Такой подход поможет избежать проблем с "зависанием" соединения и, как следствие, блокировкой процесса (для блокирующих соединений). На моей памяти было 2 неприятных кейса. В далёком 2015 я использовал requests для работы с сервисом поиска и бронирования ЖД билетов в Казахстане, по-умолчанию в requests нет таймаута и ожидание может превратиться в бесконечность. Всё было хорошо до тех пор пока у внешнего сервиса не начались проблемы, и он перестал отвечать на запросы. Все worker-процессы ушли в бесконечное ожидание, и мой сервис перестал принимать новые соединения, сайт попросту сломался. Тогда мне потребовалось некоторое время, чтобы понять в чем проблема.

Со второй проблемой я столкнулся неделю назад. Сейчас я разрабатываю веб-сервисы для автоматизации рекламных сетей, активно пользуюсь Facebook Ads. Для работы с маркетинговым сервисом Фейсбука существует библиотека facebook-python-business-sdk. Внимание! Под капотом она использует requests 😉 И у неё нет таймаута по умолчанию. Я наткнулся на те же грабли, когда ФБ стал подтормаживать.

К слову, если вы как и я пользуетесь facebook-python-business-sdk, то таймаут можно установить через инициализацию API-класса:

FacebookAdsApi.init(access_token=access_token, api_version='v13.0', timeout=settings.FACEBOOK_ADS_API_TIMEOUT)

Не наступайте на грабли, ставьте таймауты 😉

Также по теме в ленте увидел пост про патчинг requests: https://adamj.eu/tech/2022/06/23/how-to-patch-requests-to-have-a-default-timeout/
👍15😁1
В доке Mozilla нашел html-тэг о котором ранее не знал — datalist: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/datalist
Этот тег выполняет функции select и input, но есть крутая фишечка — нативный автокомплит.
А вы знали о теге <datalist>?
👍7🔥3🤯2
Python Web Conf 2022 Talks + Tutorials — https://bit.ly/3nrOChE
👍2
Выходим на мета-уровень!🤯 11 июля начинается новый сезон Podlodka Soft Skills Crew, который называется "Научиться учиться"🤩

🎓В нашей жизни и так много обучения, а в айти и тем более – новые технологии, новые доменные области, новые процессы. Все это постоянно меняется.
Поэтому критически важно осваивать новые знания эффективно и осмысленно.

Поэтому в новом сезоне мы сконцентрируемся на выстраивании эффективного подхода к самообучению:

⭐️ Проанализируем свои потребности и цели в обучении
⭐️ Построим план по достижению этих целей
⭐️ Поймем принципы обучения на биологическом уровне
⭐️ Изучим и сравним инструменты обучения от книг и до сессий с ментором
⭐️ Научимся разбираться с мотивацией и находить силы

Бонус трек – в течение всей недели по утрам будут практические воркшопы по осознанности, рефлексии и самодиагностике!

Если вы еще ни разу не были на Podlodka Crew, то самое время попробовать! Главные фичи:
💡Узкая тема. Разбираем теорию и практику конкретного подхода или технологии.
💡Удобное расписание: сессии идут 2 раза в день с понедельника по пятницу.
💡Море практики, реальных кейсов и нетворкинга без границ

Купить билеты и посмотреть расписание можно на сайте конференции. Ждем вас на борту!
Django 4.0.6, 3.2.14

В последнем продакшен релизе Django появился весьма не приятный баг, который может привести к SQL Injection: https://www.djangoproject.com/weblog/2022/jul/04/security-releases/

Рекомендуется обновиться как можно быстрее.
😁2
Django 4.1

Вышел долгожданный релиз Django 4.1: https://www.djangoproject.com/weblog/2022/aug/03/django-41-released/
🔥6
Какой крутой ресурс я нашел: https://deps.dev/

Сервис индексирует пакетные репозитории типа npm, pypi, cargo и т.д., и показывает детальную информацию о пакетах:

— прямые зависимости
— историю версий
— подробную информацию о лицензиях

Например, у Django есть 2 прямые зависимости: asgiref и sqlparse.
👍11
Советы по работе с git в PyCharm: https://youtu.be/IoUQ5JEokN4

Сам я уже давно не использую классический консольный git, пользуюсь исключительно UI от IDE, в частности PyCharm.
🔥1
Прошлый пост касался архитектуры Redis, а сейчас предлагаю вам познакомиться с кишками memcached: https://bit.ly/3czb6eQ

Лет 5-6 назад я был активным пользователем memcached, использовал его во всех проектах как основной кэш-бэкенд, но с бурным развитием Redis я переключился на него. Тем не менее, memcached поддерживается (последняя версия вышла 26 августа 2022 года), видео считаю очень полезным (как и канал автора в целом).
👍8
Psycopg 3.1

Вышел новый релиз самой популярной python балалайки для работы с PostgreSQL — psycopg 3.1
Из значительных фич — pipeline mode. Режим позволяет отправлять запросы на сервер и не ждать ответа, что даёт буст в скорости работы приложения (например, при массовых вставках в условиях высокого пинга)
👍12😁1
Мне тут на глаза попалась новая балалайка для логирования в Python от Microsoft: picologging

Интерфейс библиотеки на 100% совпадает со стандартным пакетом logging, о котором я, к слову, писал подробный гайд. Главная её фича — скорость. Высокая производительность достигается за счёт языка Си, picologging это расширение на сях. Например, метод format у Formatter-класса работает в 18 раз быстрее стандартного. Но есть и свои ограничения.

В остальном, можно без лишних движений заменить стандартный logging на picologging:

import picologging as logging

WARNING: библиотека находится в статусе альфы со всеми вытекающими 😁
👍8😁2👏1
23 сентября стартует 4 поток курса по асинхронной архитектуре. Авторы: Федя Борщёв и Антон Давыдов.

Вы научитесь проектировать и разрабатывать сложные распределенные системы — с Kafka, CQRS и сложными транзакциями. Курс — крафтовый: это значит вы не платите гигантской компании, которая просто пригласила пару чуваков из компании с громким именем. Наоборот — ребята давно копили опыт и теперь решили поделиться.

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

Даже если вы джун, который пилит монолит в маленьком стартапе, курс вам поможет: мышление проектировщика позволяет писать более понятный и изолированный код.

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

Длительность курса — 4 недели, по 2 урока в неделю. Будут домашки с разбором, так что на выходе, если не поленитесь — получите проект с асинхронной архитектурой в портфолио.

Для подписчиков скидка 10% по промокоду adil10. Действует до 14 сентября.

Посмотреть программу и отзывы
👍2🔥21👌1
HTML Embed Code:
2025/07/09 13:59:56
Back to Top