2 932
Подписчики
Нет данных24 часа
-27 дней
-430 дней
Архив постов
2 932
Psycopg 3.1
Вышел новый релиз самой популярной python балалайки для работы с PostgreSQL — psycopg 3.1
Из значительных фич — pipeline mode. Режим позволяет отправлять запросы на сервер и не ждать ответа, что даёт буст в скорости работы приложения (например, при массовых вставках в условиях высокого пинга)
2 932
Прошлый пост касался архитектуры Redis, а сейчас предлагаю вам познакомиться с кишками memcached: https://bit.ly/3czb6eQ
Лет 5-6 назад я был активным пользователем memcached, использовал его во всех проектах как основной кэш-бэкенд, но с бурным развитием Redis я переключился на него. Тем не менее, memcached поддерживается (последняя версия вышла 26 августа 2022 года), видео считаю очень полезным (как и канал автора в целом).
2 932
Советы по работе с git в PyCharm: https://youtu.be/IoUQ5JEokN4
Сам я уже давно не использую классический консольный git, пользуюсь исключительно UI от IDE, в частности PyCharm.
2 932
В блоге Wolt увидел полезный пост про структуру современных Python пакетов: https://blog.wolt.com/engineering/2022/08/11/project-template-for-modern-python-packages/
2 932
Какой крутой ресурс я нашел: https://deps.dev/
Сервис индексирует пакетные репозитории типа npm, pypi, cargo и т.д., и показывает детальную информацию о пакетах:
— прямые зависимости
— историю версий
— подробную информацию о лицензиях
Например, у Django есть 2 прямые зависимости: asgiref и sqlparse.
2 932
Django 4.1
Вышел долгожданный релиз Django 4.1: https://www.djangoproject.com/weblog/2022/aug/03/django-41-released/
2 932
Оффер для бэкенд-разработчиков уже в пути 🚨
30-31 июля Яндекс проводит Weekend Offer — мероприятие, на котором вы сможете получить оффер в Яндекс за два дня.
У вас есть опыт коммерческой разработки от 3-х лет на Java / C++ / Python? Отлично! Регистрируйтесь на сайте, решайте задачи отборочного этапа и 30 июля участвуйте в онлайн-секциях — на них вам предложат несколько задач, в зависимости от вашего опыта.
Если все пройдет хорошо, уже 31 июля вы получите оффер и сможете присоединиться к одной из команд Яндекса.
Задачи предварительного этапа доступны до 23:59 27 июля, а материалы для подготовки вы сможете найти 👉здесь
2 932
Устали заливать медленный код серверами? Приходите на новый сезон онлайн-конференции для backend-разработчиков Podlodka Backend Crew!
Стартуем 18 июля, тема сезона – "Делаем приложения быстрее"!
Всю неделю будем пристально смотреть на производительность приложений. Будем учиться
⚡️Замерять и анализировать нагрузку
⚡️Оптимизировать узкие места, не переписывая сервис с нуля
⚡️Грамотно использовать многопоточность и эффективно утилизировать доступные ресурсы
⚡️Ускорять все, что тормозит!
Будем разбираться фундментально, поэтому привязки к конкретному стеку и фреймворкам в программе не будет. Зато, например, будем разбираться с реактивным подходом и акторной моделью.
Как всегда в Podlodka Crew все это на протяжении недели с необычными нескучными форматами сессий, и с живым комьюнити в Slack.
Купить билеты и посмотреть расписание можно на сайте. Ждем на борту!
2 932
Django 4.0.6, 3.2.14
В последнем продакшен релизе Django появился весьма не приятный баг, который может привести к SQL Injection: https://www.djangoproject.com/weblog/2022/jul/04/security-releases/
Рекомендуется обновиться как можно быстрее.
2 932
Выходим на мета-уровень!🤯 11 июля начинается новый сезон Podlodka Soft Skills Crew, который называется "Научиться учиться"🤩
🎓В нашей жизни и так много обучения, а в айти и тем более – новые технологии, новые доменные области, новые процессы. Все это постоянно меняется.
Поэтому критически важно осваивать новые знания эффективно и осмысленно.
Поэтому в новом сезоне мы сконцентрируемся на выстраивании эффективного подхода к самообучению:
⭐️ Проанализируем свои потребности и цели в обучении
⭐️ Построим план по достижению этих целей
⭐️ Поймем принципы обучения на биологическом уровне
⭐️ Изучим и сравним инструменты обучения от книг и до сессий с ментором
⭐️ Научимся разбираться с мотивацией и находить силы
✨Бонус трек – в течение всей недели по утрам будут практические воркшопы по осознанности, рефлексии и самодиагностике!
Если вы еще ни разу не были на Podlodka Crew, то самое время попробовать! Главные фичи:
💡Узкая тема. Разбираем теорию и практику конкретного подхода или технологии.
💡Удобное расписание: сессии идут 2 раза в день с понедельника по пятницу.
💡Море практики, реальных кейсов и нетворкинга без границ
Купить билеты и посмотреть расписание можно на сайте конференции. Ждем вас на борту!
2 932
В доке Mozilla нашел html-тэг о котором ранее не знал — datalist: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/datalist
Этот тег выполняет функции select и input, но есть крутая фишечка — нативный автокомплит.
А вы знали о теге <datalist>?
2 932
Repost 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/
2 932
30 мая стартует новый сезон конференции Techlead Crew. Тема недели — «Continuous Delivery» или подходы и инструменты непрерывной поставки кода. Будет интересно не только техлидам, но всем, кто хочет выкатывать релизы в продакшен часто, быстро, качественно и с минимальными рисками для бизнеса.
За неделю сессий вы:
👉 Разберетесь в аббревиатурах CI\CD\QA\QC.
👉 Узнаете все про A\B тестирование и стратегии деплоймента.
👉 Научитесь собирать и тестировать нефункциональные требования на поставку вместе с экспертами из Bolt, AWS и Scentbird.
👉 Оцените перспективность микрофронтенд-технологий на круглом столе.
👉 Узнаете, как выстроены CD процессы, выкатка новых фич, A\B тестирование и проверка качества в компаниях мирового уровня.
Если вы еще не разу не были на Podlodka Crew, то самое время попробовать! Главные фичи:
⭐️ Узкая тема. Разбираем теорию и практику конкретного подхода или технологии.
⭐️ Удобное расписание: сессии идут 2 раза в день с понедельника по пятницу.
⭐️ Море практики, реальных кейсов и нетворкинга без границ
➡️ Подробное расписание и билеты с хорошей скидкой уже на сайте! ⬅️
С нетерпением ждем на борту!
2 932
Релиз первой альфы 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 в своих проектах/на работе?
