Обновить
4K+
61
Максим@PyLounge

TeamLead Backend Python

2,1
Рейтинг
105
Подписчики
Хабр КарьераХабр Карьера
Отправить сообщение

manage.py migrate в пятницу в 17:30 на проде с 3K RPS и таблицей 200М строк

Уровень сложностиСредний
Время на прочтение29 мин
Охват и читатели12K

Всем привет! Меня зовут Макс, я Lead Backend и автор YouTube‑канала PyLounge

Это третья часть мини‑серии о Django‑миграциях. В первой части мы готовились к миграциям и разбирались с конфликтами, во второй чинили типичные подводные камни. Если их не читали, то рекомендую начать именно с них, а затем вернуться сюда.

В этом же материале поговорим о самом интересном: что происходит, когда python manage.py migrate запускается в 17:30 в пятницу на проде, под 3k RPS и таблицей в 200 миллионов строк. 

Расскажу какие блокировки в PostgreSQL берёт каждая операция Django, что внутри atomic = False, как пишется правильный паттерн expand‑migrate‑contract, зачемнужны AddIndexConcurrentlyAddConstraintNotValidSeparateDatabaseAndState и как обновлять данные на больших таблицах.

P. S. примеры намеренно упрощены, чтобы влезли в статью и не задушили. В реальной жизни всё ещё хуже — но шаги те же.

P. S.S. При подготовки этого материала ни одна продовая база данных не пострадала. 

Читать далее

Научись говорить ртом

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели26K

Всем привет, меня зовут Макс. Я TeamLead Backend, автор YouTube-канала PyLounge, бывший преподаватель классического университета и просто человек, который много общается с другими людьми. Нам всем в современном мире так или иначе необходимо общаться с людьми. Даже если вы программист, вы не просто пишете код, вы постоянно с кем-то коммуницируете, причём много. И многие люди с большим трудом будут добиваться успеха в карьере, в отношениях, если не научатся одной простой вещи – говорить ртом.

Когда я начал изучать программирование, думал, что тяжело писать код. Как оказалось, нет. Тяжело выстроить качественную коммуникацию, научиться самому и научить других людей эффективно общаться друг с другом. Это может прозвучать в инфоцыганском стиле, в стиле успешного успеха, но если вы овладеете навыком говорить с людьми ртом, а не только в него кушать, я гарантирую, что это улучшит качество вашей жизни, хотя бы чуть-чуть.

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

Читать далее

CTE (Common Table Expression) / Django CTE

Уровень сложностиПростой
Время на прочтение20 мин
Охват и читатели13K

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

Поэтому в этой статье я расскажу:

1. что такое CTE

2. зачем оно нужно 

3. что такое рекурсивные СТЕ

4. чем СТЕ отличается от временных таблиц, представлений и подзапросов

5. как СТЕ может плохо сказаться на производительности 

6. как использовать СTE в самом народном фреймворке Django

Использует SELECT со звёздочкой Макс - Lead Backend и автор YouTube-канала PyLounge. Поехали! 

Читать далее

Разыскивается живым или мёртвым: легендарная история Себастьяна Рамиреса

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели17K

Себастьян Рамирес. Легенда мира Python-разработки, человек с моржовыми усами, единоличный создатель фреймворка FastAPI и герцог open-source разработки. Он работал на ферме, отчислился из католической школы, заболел раком, женился, изучил Data Science, стал Backend-разработчиком, выступал на конференциях, откликнулся на вакансию, где использовался разработанный им фреймворк, вел твиттер... И где-то между этими важными делами успел стать одним из самых интересных Open Source-разработчиков во всём мире, а также человеком, который на bus-факторе может прокатить половину Интернета (извините). Да, да, речь про того самого Tiangolo. И если вы знали его только как разработчика FastAPI, то сейчас точно удивитесь.

Меня зовут Макс, я TeamLead Backend в компании ИдаПроджект, автор YouTube-канала PyLounge. Не буду затягивать со вступлением, поехали!

Читать далее

Offset Explorer: разбираемся в базе

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели26K

Всем привет! Меня зовут Макс. Я Lead Backend в компании ИдаПроджект и автор YouTube-канала PyLounge.

Любой крупный проект так или иначе используют брокеры сообщений — и чаще всего это Apache Kafka. Так что уметь взаимодействовать с Kafka (хотя бы на базовом уровне) будет полезно как разработчику, так и тестировщику или аналитику. 

Я в своей работе практически ежедневно взаимодействую с кафкой, поэтому решил поделиться опытом. В команде мы используем графический интерфейс Offset Explorer (далее OE), о котором сегодня и пойдет речь.

Погнали!

Читать далее

Welcome to the club, buddy: зеленые флаги работодателей

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели12K

В соцсетях часто обсуждают «красные флаги» — тревожные сигналы, которые указывают на проблемы в отношениях, дружбе и даже в рабочих условиях. Но давайте сменим фокус и поговорим о «зелёных флагах» работодателей — признаках, которые помогают определить здоровую рабочую среду в IT-компании.

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

Поделюсь с вами мнением я, Макс, Lead Backend в компании ИдаПроджект и автор YouTube-канала PyLounge.

Погнали!

Читать далее

Test Your Destiny, или как составить хорошее тестовое задание

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели4.3K

Привет, Хабр и его читатели! С вами снова Макс, Lead Backend в компании ИдаПроджект и автор YouTube-канала PyLounge.

Так уж вышло, что мне пришлось посмотреть много тестовых заданий за последний год. А мой бэкграунд — в качестве преподавателя классического университета — не смог оставить равнодушным к этой истории :). Так что я решил углубиться в тему тестовых заданий (далее ТЗ) и поделиться с вами результатами.

Test Your Destiny

Большой гайд по миграциям в Django: полезные советы и обход типичных подводных камней

Уровень сложностиПростой
Время на прочтение27 мин
Охват и читатели16K

Привет! Меня зовут Макс, я backend-разработчик в компании ИдаПроджект и автор YouTube-канала PyLounge.

Эта вторая часть большой статьи по Django-миграциям для начинающих. Если вы пропустили или потеряли первую часть — держите ссылку.

Что здесь будет? Разберем фиктивное применение, миграции данных, «сухую проверку» и основные проблемы, которые возникают у начинающих. Также поделюсь полезными советами и подсвечу детали работы. Примеры из практики — обязательно будут.

Дисклеймер (как и в первой части, чтобы не было недопониманий): все примеры специально упрощены, чтобы неокрепший ум выцепил концепции, а не детали реализации. Не бейте, или бейте там, где синяков не видно :)

Читать далее

Большой гайд по миграциям в Django: готовимся к миграциям и избегаем конфликтов

Уровень сложностиПростой
Время на прочтение28 мин
Охват и читатели23K

Привет! Меня зовут Макс, я backend-разработчик в компании idaproject и автор YouTube-канала PyLounge.

Я всегда хотел создавать контент, который пригодился бы мне самому в прошлом или настоящем. Эта большая статья — не исключение. Она для тех, кто только начинает изучение Django: жалею, что когда я начинал, мне не попался подобный материал. Надеюсь, он станет для вас хорошим подспорьем. 

Кому-то всё сказанное здесь покажется очевидным, но я всегда придерживался принципа — «то что очевидно мне или вам, не всегда очевидно другому».

Что будет? Я расскажу, что такое миграции, зачем они нужны, как подготовиться к работе с ними и провести базовую работу на Django; отдельно подсвечу тему конфликтов и схлопываний, покажу, как содержать в чистоте историю миграций. 

Всё это с примерами на практике и иллюстрациями. Погнали!

Читать далее

Что я понял на первой работе программистом / Мои советы Junior-разработчикам

Время на прочтение8 мин
Охват и читатели75K

Всем привет! Меня зовут Максим. Я backend-разработчик, который не так давно устроился на свою первую работу. В этой статье хочу поделиться своими наблюдениями/советами/рекомендациями для начинающих программистов. Ведь, как известно, если опыт не превращён в текст, он даже не становится прошлым.

Материал будет полезен тем, кто ищет первую работу или не так давно её нашёл. Примеры будут из области Python Backend, но наблюдения универсальны и спокойно перекладываются на другую область. Поехали!

Читать далее

Senior Softskills Engineer

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели2.4K

Не так давно наткнулся в сообществе на обсуждение того, что важнее для современного IT‑cпециалиста — soft skills или hard skills?

Люди в telegram‑каналах с попкорном наблюдали за.. Подожди, ты не понимаешь о чём речь? В смысле не знаешь что такое soft skills и hard skills?! Хм.. значит в этот раз рекомендации сработали правильно.

Читать далее

SSH для новичков

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели635K

Программистов, сисадминов, devops'ов, тестировщиков часто объединяет использование некоторых общих технологий. Например, возможность иметь удалённый доступ к серверу пригодилось бы любому из указанной выше анекдотичной компании. Поэтому в этой статье мы рассмотрим основы работы с протоколом SSH на базовом уровня (без генерации ключей, подписей, мам, пап и кредитов). "Продвинутое" использование посмотрим уже отдельно, в следующий раз. Материал подготовил Макс, автор YouTube-канала PyLounge. Поехали!

Читать далее

Python для детей

Время на прочтение4 мин
Охват и читатели38K

До того, как стать преподавателем в университете, я вёл программирование в детском технопарке Кванториум. Это такой центр дополнительного школьного образования куда дети приходили после уроков и изучали программирование, робототехнику, биологию и т.д. Конкретно я вёл занятия по Python, C++ и Arduino.

Программирование на Python отлично заходило детям, к тому же именно Python сейчас изучают в школе на уроках информатики. Он практически полностью вытеснил Pascal т.к. не уступает ему в простоте, а возможностей сделать разные интересные проекты гораздо больше. Поэтому вопрос как лучше изучать Python ребёнку актуален не только для родителей, но и для самих детей.

В этой статье я порекомендую книги, сайты и видео для эффективного изучения Python.

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

Читать далее

Как подключить препроцессор SASS/SCSS к Django

Время на прочтение6 мин
Охват и читатели7.9K

"Тачка на прокачку" уже давно не выходит. А вот "Django на прокачку" снова продолжает вас радовать. В сегодняшнем эпизоде мы:

1.       Узнаем, что такое препроцессоры и чем они интереснее обычного CSS;

2.       Разберёмся с SASS и SCSS, узнаем, чем они отличаются;

3.       И рассмотрим на практике, как использовать SASS/SCSS в Django-проекте.

Как обычно, меньше болтовни – больше кода. Центрирует картинку Макс. Выходит за рамки Егор. Статью написали авторы канала PyLounge. Поехали!

Подключить SASS/SCSS к Django

Как всё успеть? | Мой тайм-менеджмент

Время на прочтение5 мин
Охват и читатели17K

Прежде чем начать говорить про тайм-менеджмент и как всё успевать, начну с плохой шутки про электрика. Как определить является электрик хорошим или плохим? Правильно! Любой живой электрик автоматически хороший. Теперь немного обо мне. Я работаю преподавателем в университете, учусь в магистратуре, веду YouTube-канал по программированию PyLounge, занимаюсь репетиторством, пишу статьи, выступаю на конференциях, мастер-класса, параллельно изучаю новые технологии, хожу в спортзал, а ещё у меня есть семья и друзья. Не воображаемые. Это важно. И если я до сих пор жив, и сейчас пишу это, значит что-то в распределении времени и тайм-менеджменте я знаю.

Читать далее

Прочитай это прежде чем поступить в университет

Время на прочтение7 мин
Охват и читатели21K

Я сам довольно много учусь. Даже сейчас, будучи преподавателем вуза, я продолжаю учиться. Закончив бакалавриат по направлению «Информатика и вычислительная техника», продолжаю обучение в магистратуре «Бизнес-информатика» с перспективой стать аспирантом по компьютерным наукам, а также веду YouTube-канал с уроками по программированию PyLounge. Поэтому тема образования и студенчества очень близка мне как никакая другая. Это действительно то, что заставляет трепетать мою душу. Поэтому я хочу поделиться своим опытом с теми, кто только поступил или думает о поступлении в вуз/ссуз. Здесь будет приведено несколько моих мыслей-советов, к которым, скорее всего, ты пришёл бы и сам рано или поздно. И пусть, наверное, это будет рано. Я просто хочу сесть и поговорить с тобой. Только ты и я.

Читать далее

Истоки Python

Время на прочтение23 мин
Охват и читатели7.7K

Привет, Хабр! Вашему вниманию представляется перевод статьи "The Origins of Python" за авторством Ламберта Меертенса - соавтора языка ABC и коллеги Гвидо ван Россума.

В своей статье Меертенс вспоминает как зарождалось программирование, своё участие в разработке языка ABC, знакомство с молодым Гвидо ван Россумом и зарождение языка Python.

Перевод предоставил Макс, авторов YouTube-канала PyLounge. Поехали!

Читать далее

К каким вопросам готовиться перед собеседованием на Python-разработчика

Время на прочтение4 мин
Охват и читатели32K

Безусловно, от программирования нужно получать свой кайф. Если вам не интересно заниматься тем, что вы делаете, наверное, это дело лучше бросить. Однако, было бы неплохо конвертировать ваш кайф в какую-нибудь валюту. Даже желательно бы не в православный рубль, а басурманский доллар. Поэтому сегодня обсудим вопросы, которые задают на собеседованиях Python-разработчику и как в целом подготовиться к любому такому собеседованию. Текст написал автор YouTube-канала PyLounge Макс. Поехали!

Читать далее

Почему в Python плохой ООП

Время на прочтение10 мин
Охват и читатели47K

В Python ужасный ООП. Кликбейтный тезис, который имеет право на существование. Есть много языков, где ООП представлен не в самом классическом виде, ну или так принято считать. Прототипные JavaScript и Lua, Golang с прикреплением методов и прочие. Но «не такой как все» всегда ли синоним слова «неправильный»?  С чего мы вообще вязли, что ООП в Python не такой каким должен быть ООП? Что вообще является точкой отсчёта «правильности» ООП? Smalltalk или Simula 67? Вроде бы объектно-ориентированное программирование – это просто парадигма.. или уже догма?

Читать далее

Как сделать локальный Django-сайт доступным в Интернете / Туннели ngrok

Время на прочтение5 мин
Охват и читатели38K

Допустим вы пишите какое-то Django-приложение. Как обычно разработка идёт локально на вашем компьютере.  По умолчанию все Django-проекты доступны по адресу http://localhost:8000 или http://127.0.0.1:8000 что одно и тоже. Эта адреса твоего локального компьютера. Соответственно никто другой в Интернете, перейдя по одному из этих адресов, ваш сайт не увидит.

Проект пока рано заливать на какой-то хостинг или выделенный сервер, но показать его другому человеку уже нужно: похвастаться другу, человеку и команды разработки, заказчику и т.д. Даже если этот человек подключится к WI-FI у вас дома и будет находиться с сайтом в одной сети, localhost будет перенаправлять гостя на своё же устройство, а не на ваш сайт.

Что делать, как показать Django-проект, которые запускается на локальном сервере, недоступном в Интернете? Есть несколько вариантов:

Читать далее
1

Информация

В рейтинге
1 817-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Бэкенд разработчик
Ведущий
Python
PostgreSQL
Linux
Docker
JavaScript
Английский язык
Django
FastAPI
Apache Kafka
Управление разработкой