Канал автора технического блога Khashtamov.com. На канале я делюсь различными интересными ссылками на статьи, видео, слайды о программировании и разработке ПО.
We open sourced a project template for modern Python packages. In this blog post, we describe what it contains and discuss the choices made while developing it.
Какой крутой ресурс я нашел: https://deps.dev/
Сервис индексирует пакетные репозитории типа npm, pypi, cargo и т.д., и показывает детальную информацию о пакетах:
— прямые зависимости
— историю версий
— подробную информацию о лицензиях
Например, у Django есть 2 прямые зависимости: asgiref и sqlparse.
Оффер для бэкенд-разработчиков уже в пути 🚨
30-31 июля Яндекс проводит Weekend Offer — мероприятие, на котором вы сможете получить оффер в Яндекс за два дня.
У вас есть опыт коммерческой разработки от 3-х лет на Java / C++ / Python? Отлично! Регистрируйтесь на сайте, решайте задачи отборочного этапа и 30 июля участвуйте в онлайн-секциях — на них вам предложат несколько задач, в зависимости от вашего опыта.
Если все пройдет хорошо, уже 31 июля вы получите оффер и сможете присоединиться к одной из команд Яндекса.
Задачи предварительного этапа доступны до 23:59 27 июля, а материалы для подготовки вы сможете найти 👉здесь
Устали заливать медленный код серверами? Приходите на новый сезон онлайн-конференции для backend-разработчиков Podlodka Backend Crew!
Стартуем 18 июля, тема сезона – "Делаем приложения быстрее"!
Всю неделю будем пристально смотреть на производительность приложений. Будем учиться
⚡️Замерять и анализировать нагрузку
⚡️Оптимизировать узкие места, не переписывая сервис с нуля
⚡️Грамотно использовать многопоточность и эффективно утилизировать доступные ресурсы
⚡️Ускорять все, что тормозит!
Будем разбираться фундментально, поэтому привязки к конкретному стеку и фреймворкам в программе не будет. Зато, например, будем разбираться с реактивным подходом и акторной моделью.
Как всегда в Podlodka Crew все это на протяжении недели с необычными нескучными форматами сессий, и с живым комьюнити в Slack.
Купить билеты и посмотреть расписание можно на сайте. Ждем на борту!
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom по актуальным проблемам backend-разработки, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Slack.
Django 4.0.6, 3.2.14
В последнем продакшен релизе Django появился весьма не приятный баг, который может привести к SQL Injection: www.djangoproject.com/weblog/…releases
Рекомендуется обновиться как можно быстрее.
Выходим на мета-уровень!🤯 11 июля начинается новый сезон Podlodka Soft Skills Crew, который называется "Научиться учиться"🤩
🎓В нашей жизни и так много обучения, а в айти и тем более – новые технологии, новые доменные области, новые процессы. Все это постоянно меняется.
Поэтому критически важно осваивать новые знания эффективно и осмысленно.
Поэтому в новом сезоне мы сконцентрируемся на выстраивании эффективного подхода к самообучению:
⭐️ Проанализируем свои потребности и цели в обучении
⭐️ Построим план по достижению этих целей
⭐️ Поймем принципы обучения на биологическом уровне
⭐️ Изучим и сравним инструменты обучения от книг и до сессий с ментором
⭐️ Научимся разбираться с мотивацией и находить силы
✨Бонус трек – в течение всей недели по утрам будут практические воркшопы по осознанности, рефлексии и самодиагностике!
Если вы еще ни разу не были на Podlodka Crew, то самое время попробовать! Главные фичи:
💡Узкая тема. Разбираем теорию и практику конкретного подхода или технологии.
💡Удобное расписание: сессии идут 2 раза в день с понедельника по пятницу.
💡Море практики, реальных кейсов и нетворкинга без границ
Купить билеты и посмотреть расписание можно на сайте конференции. Ждем вас на борту!
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Slack.
В доке Mozilla нашел html-тэг о котором ранее не знал — datalist: developer.mozilla.org/en-US/d…datalist
Этот тег выполняет функции select и input, но есть крутая фишечка — нативный автокомплит.
А вы знали о теге <datalist>?
Про таймауты и внешние 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: adamj.eu/tech/20…-timeout
An SDK built to facilitate application development for Facebook Ads API. - GitHub - facebook/facebook-python-business-sdk: An SDK built to facilitate application development for Facebook Ads API.
DigitalOcean is committed to providing products that serve developers throughout their journey, and access to serverless computing has been one of the most popular requests from DigitalOcean users ...
30 мая стартует новый сезон конференции Techlead Crew. Тема недели — «Continuous Delivery» или подходы и инструменты непрерывной поставки кода. Будет интересно не только техлидам, но всем, кто хочет выкатывать релизы в продакшен часто, быстро, качественно и с минимальными рисками для бизнеса.
За неделю сессий вы:
👉 Разберетесь в аббревиатурах CI\CD\QA\QC.
👉 Узнаете все про A\B тестирование и стратегии деплоймента.
👉 Научитесь собирать и тестировать нефункциональные требования на поставку вместе с экспертами из Bolt, AWS и Scentbird.
👉 Оцените перспективность микрофронтенд-технологий на круглом столе.
👉 Узнаете, как выстроены CD процессы, выкатка новых фич, A\B тестирование и проверка качества в компаниях мирового уровня.
Если вы еще не разу не были на Podlodka Crew, то самое время попробовать! Главные фичи:
⭐️ Узкая тема. Разбираем теорию и практику конкретного подхода или технологии.
⭐️ Удобное расписание: сессии идут 2 раза в день с понедельника по пятницу.
⭐️ Море практики, реальных кейсов и нетворкинга без границ
➡️ Подробное расписание и билеты с хорошей скидкой уже на сайте! ⬅️
С нетерпением ждем на борту!
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom по актуальным проблемам techlead-разработки, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Slack.
Релиз первой альфы Django 4.1
Вышла первая альфа-версия Django 4.1: www.djangoproject.com/weblog/…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
Более подробную информацию о фичах и обратно несовместимых изменениях можно почитать на сайте: docs.djangoproject.com/en/dev/…ases/4.1
А вы используете Django в своих проектах/на работе?
Вы приняты
Многие из вас уже учились в Школе Сильных Программистов — это ребята, которые сделали курсы «Асинхронная Архитектура» и «Стать Тимлидом».
Теперь Федя с Марьяной запускают курс на максимально актуальную сейчас тему — как найти работу за рубежом. На курс позвали чувака, который уже 4 года нанимает инженеров в Мюнхене, и сам переехал в Германию из Красноярска в 2014 году. Обещают помочь с линкедин-профилем, провести мок-интервью и дать обратной связи от себя и других студентов.
Обучение стартует 26 мая, продлится три недели и затронет весь цикл трудоустройства — от выбора компании до оценки адекватности оффера.
Записаться →
P.S. По промокоду devbrain10 скидка 10% до 18 мая.
Вышла первая бета python 3.11: www.python.org/downloa…n-3110b1
Версия 3.11 несёт в себе большое количество новых фич. Скоро выпущу подробный пост с разбором каждой фичи. Помимо этого в рамках инициативы Faster Python заявляется, что версия 3.11 в среднем на 22% быстрее чем 3.10 😲😲