Собеседование Python developer Сторожук Сергей

Подготовка к собеседованию на Python Developer

Транскрипция видео:

  • Всем привет Добро пожаловать Ну что же ждет нас новая собеседование Джуна питаниста бы кэндера с нами новая Ольга варакшина она будет отвечать за софтовую часть Ну и сегодня жертва у нас Сергей я к сожалению не знаю как правильно ударение оставить сторожук или сторожок или осторожно Сергей сторожук Вот ну как бы на этом и кивокки мы закончим Ольга Вам слово Спасибо Андрей ну Здравствуйте Сергей спасибо что откликнулись на вакансию компании получите шитье я начну с стандартного вопроса Расскажите о себе

    00:00:01 - 00:01:40

  • Да спасибо за предоставленную возможность расскажу немного о себе Меня зовут Сергей сторожук Я начинающий поэтому разработчик Сейчас расскажу Собственно как я пришел к этому как стало ли становлюсь разработчик начал я с того что окончил несколько онлайн курсов после чего решил пройти оффлайн курс высшей школе экономики где преподаватель вдохновил меня на то что программирование может стать профессией не только увлечений окончив еще несколько краткосрочных курсов среди которых курс поисковили статистике я решился на Большой курс от

    00:00:53 - 00:02:21

  • Яндекс практику которая назывался поэтому разработчик по итогам которого предполагалось вручение настоящего диплома у профессиональной переподготовки с которым собственно можно было попробовать устроиться на работу обучение проходило в период ноября двадцать первого года по август 22 результатом обучения мой личный стек технологий включает себя поэтому джанга телеграмма для создания ботов я знаю и понимаю что такое Как работать с виртуальным окружением гид использовать течение обучения было выполнено 4

    00:01:38 - 00:03:01

  • крупных проекта один из которых был команда в котором я был руководителем которым наша команда выполнена одной из первых среди проектов можно отметить финальный проект который хорошо отражает все то чему Мы научились для которого для готовой фронтальной части Мы создали всю внутреннюю логику работы сайта продуктовый помощник на сайте можно посмотреть рецепты Зарегистрироваться создать рецепт редактировать рецепт добавить рецепт в Избранное подписаться подписаться на автора добавить рецепт корзину и сформировать список покупок

    00:02:30 - 00:03:46

  • после получения диплома от Яндекс практикума и некоторого мониторинга вакансии я увидел что на рынке большой спрос на умение писать и синхронный код Поэтому сейчас я продолжаю обучение на той же платформе и прохожу курс по синхронному программировать уже освоил многопроцессорные многопоточное приложение и осинки сейчас изучаю фастопию вот собственно все что хотел рассказать про себя Спасибо А вот вы указывали резюме что у вас есть опыт работы управления командой как Вы расскажите распределяли обязанности и когда вы были

    00:03:08 - 00:04:33

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

    00:03:57 - 00:05:31

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

    00:04:50 - 00:06:32

  • предложения связанные с тестированием Я готов приоритет у меня установлен туда где есть спрос Как вы выстраиваете формат коммуникации с коллегами по проектам [музыка] ну в чем вопрос собственно выстраивают коммуникацию мы договорились Как именно она проходит может вас были какие-то случаи когда не все удавалось в проекте в Яндекс проекте у нас таких случаев не было То есть мы договорились и коллеги выполнили все срок осталось только это свести все было хорошо а когда руководителем вы были практически когда приходилось я брал

    00:05:44 - 00:07:17

  • свои конфликтных ситуаций дальше разговор у меня не заходила не было ни дисциплинарных там увольнений не даем потому что удавалось человеку убедить Выполнять ту работу которую на него возложена а вот что должно случиться чтобы вы уволились работы Представьте такой ситуации вы разработчик уже вот Ну тут может быть несколько кейсов во-первых сама работа может на То есть если я пойму что на меня здесь рассчитывают только на выполнение одной и той же задачи в течение бесконечного времени и никакого роста здесь не

    00:06:45 - 00:08:10

  • предвидится второе есть Ну тоже связано с этим руководством меня не верит по каким-то причинам не доверяет И не продвигает не дает никаких интересных задач поэтому видимо это будет для того чтобы подумать найти что-нибудь новое [музыка] Спасибо у меня в целом все отлично значит значит настало мое время смотреть ты говорил про асинхронную разработку Ну а в чем преимущество между однопоточной преимущество во времени выполнения и в использовании ресурсов допустим если у нас нужно скачать несколько картинок Мы это

    00:07:35 - 00:09:23

  • можем реализовать многопоточным образом или конкурентным образом и сократить время выполнения такой задачи до 10 или даже там до сотни раз зависимость многопоточным или асинхронным можем и так и так реализовать между многопоточностью многопоточность эта задача будут выполняться параллельно в асинхронности то есть мы запустили задачу и продолжаем выполнять наш код пойдем дойдем до запуска новой задачи запустим ее и продолжим выполнять наш код и таким образом Ну из-за того что код у нас будет выполнять очень быстро

    00:08:32 - 00:10:13

  • то а синхронность данном случае будет очень близко многопоточность многопоточность еще в питоне есть я слышал Там какой-то Гил который все портит Гил который Да ограничивает задачи которые связаны с использованием процесса допустим для скачивания мы можем использовать многопоточность без ограничений а для таких задач которые предполагают использование процессора допустим вычислительные лучше использовать много процессов ладно Так ты говорил что ты пробовал остапе насколько глуп далеко у вас твоя

    00:09:24 - 00:10:58

  • вот эта проба зашла сейчас я закончил спринты издал знание свежие можешь вкратце рассказать Зачем Остап и используют используется для валидации данных таким образом Ну то есть если мы задаем тип данных то пойдите проверяет правильно ли мы пользователи эти данные передают Если нет тогда он генерирует ошибку [музыка] Ну и Какие конкретно данные который передает пользователей которые мы Передаем пользователю то есть допустим в питоне если мы устанавливаем какой-то тип у нас нет проверки поэтому заходит данные именно с этим

    00:10:11 - 00:12:05

  • получается Мы из питона создаем что-то такое статический типизированная Получается что так Ладно хорошо а как еще можно проверить тип данных в питоне кроме падает проверить есть такая функция Type и соответственно и мы можем передать туда [музыка] сторону топ фитинга то есть Type ладно окей Я не спорю что-нибудь про Type hinding можешь сказать Ну это да использование линтеров мы можем ВСК там или пайчарами запустить и она покажет что у нас где-то так А ты говорил ты настраивался и сиди каким-то таким образом можно встроить

    00:11:17 - 00:13:05

  • все сиди проверку типов типов [музыка] мы запускали проверку по с помощью flake 8 соответственно можно туда добавить муку и он проверит тоже на это соответствие программ прям в эту же тоскую или лучше сделать отдельно чтобы понятно было Где ошибка лучше сделать отдельно Окей Ладно хорошо Раз уж мы говорим про типы данных типизацию и прочее можешь вкратце рассказать Какие типы данных существует в питоне встроенные типы данных классифицируются как изменяемые не изменяет к неизменяемым у нас относится числа

    00:12:29 - 00:14:12

  • строки [музыка] кортежи изменяемым у нас относится списки с этой и словари это всё [музыка] Да давай это все так хорошо с данными вроде как разобрались да Давайте что-нибудь немножко по лайв ходим можешь открыть свой редактор которым ты обычно работаешь Я тебе расскажу что я от тебя хочу видеть и попробую Окей видно смотри давай какой-нибудь определим функцию Ну пусть она будет без разницы который не делает пока ничего и теперь пришло время поговорить немножко про области видимости Как устроены области

    00:13:22 - 00:15:19

  • видимости в питоне У нас есть глобальная область видимости давай что чтобы соответственно был поинтереснее давай сразу какой-нибудь переменную X будем определять в глобальной области видимости а что еще не хватает папе осень видишь подчеркнут явно какое-то нарушение что-то не хватает две пустых строчки Вроде так хорошо так определили в глобальные области видимости вопрос Если я попробую внутри функции запросить переменную X я смогу ее получить Почему Потому что из локальной области Мы видим переменной которая определена

    00:14:39 - 00:16:10

  • глобально Хорошо ну давай предположим что я внутри вот внутри функции Мы тоже определим переменную X и зададим ей какое не значение совсем другое пусть будет 100 если мы сейчас захотим напечатать X просто вот где-то какое будет значение если внутри функции напечатаем это будет 100 если снаружи это соответственно будет 10 окей ладно как сделать так чтобы пробросить X в глобальную область видимости Можно так сделать пробросить X из функций фан да но для этого чтобы видно было это область видимость нам нужны

    00:15:53 - 00:17:30

  • диктора тогда что мы видели внутреннюю область локальную область хорошо не совсем то есть Global ты как-нибудь такой штукой сталкивался Ну да то есть мы можем объявить X Global и тогда мы его будем видеть глобальной области давай объявим OK теперь вопрос Вот мы хотим сейчас распечатать X чему будет равен [музыка] будет равен 10 Почему Ну потому что функция не выполнялась и не инициализировала наш OK Ладно хорошо Так теперь вопрос такой дальше идем да Ну ладно с этими области Понятно а что происходит с областью видимости

    00:16:52 - 00:18:40

  • когда мы работаем с объектами С экземплярами класса Давай создадим какой-нибудь класс и внутри него создадим что-нибудь Ну тоже какой-нибудь переменную инициализируем инициализируем инициализаторе или просто в чем разница и как лучше но можно сделать переменную класса А можно сделать [музыка] через конструктор те переменные которые будут экземпляра Ну давай сделаем это и поговорим в чем разница кстати что ты ему линтера тоже не нравится опять с классом так Макс что-то когда ты класс делал линтру не нравится

    00:17:55 - 00:19:37

  • От чего вообще наследуется базовый класс С объекта обжиг [музыка] давно писал на питоне 2 окей можно удалить в третьем питоне Я думаю что сработает и так потому что это явным образом наследовать насколько я помню нужно было явным Уже не надо встретить это да давай удалим эти кавычки раз менять Ну давайте Теперь через Unit опечатка [музыка] определили Ну окей давай попробуем их вызвать вообще как-нибудь с ними поработать Просто покажи В чем разница между Maxx который вот ты через и не сделал так как

    00:19:15 - 00:20:57

  • вообще как этим пользоваться Можно даже просто распечатывать не особо заморачиваясь так Макс для того чтобы нам X наши определить нужно создать какой-нибудь экземпляр класса допустим пример [музыка] и с нашим допустим 200 А зачем вот Кстати вы нет селфи передается первым это вот как раз ссылка на экземпляр класса то есть понимал каким экземпляром работает Окей хорошо ладно таким же образом можно сделать методы нужно сделать методы Скажи а можно сделать метод который бы вызывался без создания экземпляра класса

    00:20:54 - 00:22:35

  • без создания статический методы которые выполнять операции Просто над теми данными которыми передадим Ладно хорошо так с бетоном более-менее Понятно наверное можно останавливать шаринг сейчас будем говорить про твою работу скажи ты создавал описки да На каких принципах вообще создается но есть такой принцип rest rest Full соответствие с которыми проектируется Ну можешь вкратце рассказать что это такое там есть 5 или 7 требований исходя из которых мы можем назвать линеры ты их помнишь [музыка] отсутствие состояния помню то есть мы не

    00:22:13 - 00:24:12

  • должны каждый запрос мы должны делать как новый [музыка] сервер не знает что мы уже делали запрос у нас не помнит [музыка] хорошо ладно все данные должны запрашиваться через единый интерфейс есть какой-то один с помощью расширения можем запрашивать там или удалять или добавлять Ну соответственно [музыка] Что такое депатентность еще раз эти патентность запросы могут быть и Темпо Тед нами на базу данных либо Как лучше здесь не лучше допустим пост запросу потому что он изменяет повторное использование запроса но изменяет

    00:23:26 - 00:25:28

  • состояние база Да допустим метод потому что их повторное использование состояния уже ладно скажи а каким образом связывается вот когда ты человека авторизуешь Да у вас есть какой-то токен правильно вот получается Если ты работаешь токеном Мы помним что человек к нам зашел мы сохраняем состояние как это связано Почему я тоже все мне Передаем или это уже не раз в рейсе мы токен Передаем каждом запросе каждый раз осуществляется проверка если мы сделали запрос токена мы потом сделаем без токена у нас будет

    00:24:39 - 00:26:23

  • проверки у нас если операция не авторизована разрешена то будет ошибка Хорошо теперь вопрос такой Давай представим что у нас есть один пользователь Да и нам нужно сделать так чтобы он регистрировался на одном из сайтов и был зарегистрирован на втором сразу Каким образом это можно сделать то есть на втором сайте у нас автоматическая дата сушила правильно Так ну это вопрос из области за области как это называется есть из четырех букв такое название которое запрещает нам это делать нет нет [музыка]

    00:25:34 - 00:27:08

  • иначе это будет небезопасно Потому что если мы на злоумышленник пришлет такой регистрацию мы зарегистрируемся и автоматом зарегистрируемся на сайте своего банка тогда он сможет с помощью этого для этого есть специальная защита который используется если пост запроса Да я понял сейчас я вспомню scfs как-то так она не помню 4 буквы нет речь не об этом речь о том что смотри я добросовестный нормальный пользователь Все идет как надо у меня есть учетная запись до определенная я под ней залогинился на

    00:26:32 - 00:27:59

  • сайте X и хочу чтобы это залогиненное состояние сохранялось автоматически на сайте Y Ну например вот ты когда в Яндексе в почте регистрируешься на авторизовался то когда ты заходишь какую-нибудь Яндекс еду ты автоматически уже там тоже или там Яндекс лавки ты под этим же пользователем там работаешь тебе дополнительно входить Уже не надо Каким образом это можно сделать Хороший вопрос Я на него наверно не отвечу Окей Ладно хорошо так Следующий вопрос Ну ты наверное работал с базами данных Я почти не почти уверен

    00:27:15 - 00:28:42

  • Какие виды связи есть базе данных между революционно естественно И вообще с какими базами данных Ты работал связи бывают один к одному один ко многим и многие можешь примерно рассказать каким образом их можно сделать осуществить в Джанго джангоры при написании модели мы явным образом указываем какая у нас будет связь между То есть праймерики вам или нет У меня разве можно как-то в одной модели указать Я всегда думал что там должна быть какая-то промежуточная таблица и ссылки идут из этой промежуточной таблицы на модели

    00:27:58 - 00:29:37

  • Но если у нас нету промежуточной таблицы дополнительных полей то Джанго сам создает такую промежуточную таблицу и нам как бы об этом не нужно беспокоиться то есть какой-то шатко то есть Ладно Хорошо скажи когда вот ты создаешь связь с помощью джанга там же не только связь между ключами создается какие-то еще индекса можешь рассказать Зачем индексы они у нас для ускорения поиска то есть они насколько я понимаю разбивают индексируемый столбец на кластеры и ищут уже по этим кластер То есть вместо линейного поиска у нас вебинарный

    00:28:57 - 00:30:32

  • происходит окей ладно А можно самому как-то эти индексы создавать можно но у меня такого опыта нет только хочу научиться Ладно Хорошо давай поговорим тогда еще вот про что Раз уж про базу данных поговорим про транзакции Что такое транзакция как-то себе это представляешь И как дело обстоит вообще с этим тоже например Jungle Кстати если хочешь можешь рассказать не про джанга А ты наверное использовал кстати что-то использовал в других проекта то есть у тебя же там на фласке что-то есть Да она по стопе

    00:29:46 - 00:31:22

  • У нас тоже используем не сырые же запросы использовал Нет конечно мы используем для этого она немножко другая так рискуя алхимии мы используем Джанго мне конечно намного более удобная в этом Я не спорю все из коробки касательно транзакции я могу сказать что есть такое примеры транзакции небезопасные У меня было такое замечание почему то есть вот я делаю добавление объектов допустим списка из списка обрабатываю список в цикле и каждый раз добавляю объект и делаю коммит соответственно получил замечание что это

    00:30:36 - 00:32:21

  • небезопасно с точки зрения транзакции потому что я могу в середине этого процесса может произойти ошибка соответственно часть Нет я отдала ошибку пользователю он пытается это выполнить снова начинается с первого элемента создан и соответственно здесь возникнут опять ошибка чтобы это было безопасной транзакцией нужно объекты создать но не комите этих базу А конец делать уже единый записать их всем всей пачкой то есть какую-то атамарно сделать Окей Ладно давай добьем уже тут базу данных Там есть такая история как миграция Зачем

    00:31:37 - 00:33:13

  • миграция это перенос соответственно наших моделей создания таблиц в базе данных соответствующих Но зачем так сложно Зачем какие-то иммиграции ты создал модель она как только сохранила набежала и сделал в питоне Мы работаем с объектами база данных это как бы таблица и чтобы обеспечить соответствие между смотреть вопрос не об этом смотрели Окей мы описали вот эту таблицу базы данных при помощи моделей То есть получается у нас как бы для питона мы записи представляем виде объектов получается тогда создаем объект

    00:32:30 - 00:34:15

  • Это мы создаем запись базе данных дальше Ну а зачем вот это так сложно сделано то есть там какая-то миграции взяли создали объект сохранили и Джанго сразу набежала туда и сделала поэтому таблицу по нашей кальке Зачем нам какие-то дополнительные команды еще вводить но Джанго набежала база данных об этом же тоже должна узнать что у нас допустим появилась дополнительное поле нашего объекта который нужно под которой нужно создать новый столбец соответственно как раз миграции выполняет актуализирует

    00:33:24 - 00:34:44

  • информацию об объектах базе данных а вот конфликт миграции Как он может быть из-за Чего можешь иммиграцию не пройти не пройти до Допустим мы удалили поле и базы данных [музыка] или мы добавляем поле и базы данных не знает как ее заполнить возникает ошибка и она нам предлагает либо там по умолчанию его заполнить каким-то значением либо уже вручную каждая значение туда вывести То есть когда мы делаем поля со значением по умолчанию какое-то база данных вот эту историю Для чего еще можно если по умолчанию

    00:34:09 - 00:35:47

  • оно должно быть какое-то без значения по умолчанию но она обязательно Да ладно Хорошо Так ну а в фласке еще где-то там где используешь Алхимия когда Алхимию используешь насколько я помню в алхимии нет такой такого механизма как миграции Каким образом там это можно сделать там есть модуль который дополнительно устанавливаем который [музыка] ты после его установки логика работает точно такая же как то есть мы создаем миграции Ну ладненько в принципе мне там еще есть Ну продолжай там еще есть вариант сразу в коде

    00:35:05 - 00:36:54

  • написать они там будут затирать предыдущие чтобы этого не было Ты используется такой модуль как колимпик позволяет нам делать Это то же самое как Джан OK ладно В принципе у меня технические вопросы закончились любимый вопрос Коля Сергей может быть у вас есть какие-то вопросы к нам быстро совсем вопросы закончились но хотите Можно еще конечно что-нибудь сделать Я хочу чтобы это все было Как процедуры предусмотрено Окей Ну ладно процедуры предусмотрено в общем-то на этом вопросе закончить потому что определенная понимание о

    00:36:20 - 00:38:00

  • твоем уровне работа Я получил фидбэк будет чуть позже Так что вопросы к нам как организации я его В каком виде да В каком виде я получу А мы сразу когда у тебя вопросы закончатся эти сразу расскажу когда у меня вопрос больше нет Ну давайте переходить Я думаю Ольга Сначала по совтовая часть а потом я по городу Да Слушайте Сергей У меня вопрос есть еще один Расскажите какой уровень заработной платы вы рассматриваете я рассматриваю минимально возможно допустим для стажеров предлагает 30 тысяч я готов на

    00:37:16 - 00:38:42

  • это чтобы начать чтобы стать стажером и начать уже как сказать вливаться в программе реальные так понятно Так ну тогда давайте перейду к фидбэку так смотри Сергей в целом то есть а тебе создается очень такой положительное впечатление Ты очень подробно рассказал о себе тосе про свой опыт и как-то пришел в разработку Почему тебе это понравилось и проект свои Расписал очень подробно то есть при этом старался уложить уложиться тоже во время Вот Потом я у тебя Начала спрашивать про Твои навыки управления

    00:38:08 - 00:39:42

  • как-то управлял на предыдущем месте работы команды и прочее ты рассказал про делегирование а потом ушел в Яндекс практику Вот мне бы хотелось чуть-чуть возможно про твой опыт на работе то есть [музыка] именно на работе практику интересно Хочется больше туда уйти У меня просто не было таких вот ярких каких-то конфликтов нечего рассказать то есть у меня дальше разговор с людьми не было проблем возможно тебя действительно там были какие-то ситуации когда ты хотела человека разговор проходила то есть что

    00:38:57 - 00:40:29

  • что-то вынес Чтобы вынесли как потом в итоге ситуации складывалась про это хотела узнать вот ну и ты в целом сам по себе То есть ты говоришь про то что развиваться что там ты двигаешься чуть-чуть интересно тоже вот вопрос про зарплату на самом деле Ну то есть жесткая зарплата 30 тысяч Это понятно но мы могли бы чем предложить больше всегда Ну и чаще всего знаешь когда говорят минимальную зарплату Я готов работать 10 тысяч бесплатно получиться опыт это с одной стороны как для кандидата Классно А вот получается

    00:39:48 - 00:41:24

  • стороны рекрутера это уже то тоже это могут быть звоночки А что вот там может быть человек там какая-то не слишком заниженная самооценка А вот а почему он так ну в общем это вопросы которые это такое знаешь слишком много скажешь это тоже минус слишком мало скажет что тоже дальше подумают о разработчики вот не всегда выгодно для его ключе вот вот так вот мы классно что Да вот вопрос про там что должно случиться чтобы вы уволились с работы да то есть Ну вот и говорит про отсутствие роста это ну здорово но вот не верит не доверяют вот

    00:40:39 - 00:42:00

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

    00:41:22 - 00:42:48

  • понятно что поскольку Ну расскажи о себе Это стандартный вопрос как ты глупо ждать экспромта но в общем некоторые монотонность для меня не критично было в глаза бросилась Вот теперь по хор там по большому счету все хорошо немножко медленно стучишь по клавишам На мой взгляд Вот это ну вот Ешки некоторые бродоности но в принципе для стажёра жена это Окей То есть если бы ты пришел на мигловую позицию такая скорость набора у меня в общем-то сразу возник вопрос насколько насколько долго ты вообще работаешь именно в этой

    00:42:10 - 00:43:39

  • по хордам вроде как все ответил Единственное что может быть принципе раз стоит подучить потому что историю соль спрашивает довольно часто и лучше прямо вот чтобы отлетала от зубов Ну и вот прям будет хорошо нормально по области видимости нормально В общем-то по потому Зачем сел встать метод вот это все по типам данных есть понимание Честно говоря я немножко отвлекся и не понял все данные рассказал или нет но понимание того что есть изменяем мы не изменяемые Это уже хорошо Я думаю что если копнуть дальше то

    00:43:00 - 00:44:37

  • наверное ты бы рассказал в чем их разница поэтому дальше копать не стал Извини сложилось впечатление что знаешь вот по базе данных Окей по индексам имеет смысл немножечко поковыряться то есть что-то по создавать руками понять в чем преимущество в чем недостаток Вот но определенное знание есть уже хорошо то есть как бы в ступор не впала рассказал что такое зачем это по транзакциям такая же история То есть у той же самой Джанги есть атомарность транзакция которой можно над юхой применить Тоже имеет смысл попробовать что это

    00:43:52 - 00:45:22

  • такое в чем эта разница но понимание того что есть что такое транзакция есть это уже год по поводу миграции тоже нормально Ну я бы порекомендовал чтобы быть чтобы увереннее отвечает на этот вопрос попробовать руками написать какими-то миграции Вот и попробовать залезть какую-нибудь иммиграционную Извините меня задницу и оттуда выбраться чтобы на вопрос какие были проблемы с миграциями у тебя был четко подготовленный кейс что вот я сделал вот так миграции не прошли Я посмотрел лучше конечно взять вспомнить и

    00:44:36 - 00:46:22

  • рассказать как с этим бороться взять удалить базу данных и накатить по новой это сам понимаешь не вариант мы не привыкли к такому Следующий вопрос мог бы быть надо было может быть продолжить Почему миграции нужно хранить Давай сейчас кстати вопрос будет Почему миграция нужно быть охранять Да ну допустим на github иммиграции не передают что это миграция это кусок кодового кодовой базы проекта по крайней мере мы когда проекты делали мы иммиграции не может не может быть такого мы заново их там делали каждый раз нет то есть они

    00:45:32 - 00:47:03

  • должны хранятся должны файлы с миграциями должны хранить хобби это обязательно Вот почему между базой данных и нашими модели Ну что а база данных там не хранится Почему чтобы мы могли ее создать на основании этих миграций Ладно уже теплее но как бы опытов Промышленной разработки нет нормально смотря какая история зачем все это нужно Дело в том что у нас есть два Ну обычно есть два варианта это стоишь и пруд то есть база настоять же она должна отличаться от Базы на продает разные базы это по умолчанию вообще никак не должны быть

    00:46:27 - 00:48:06

  • связаны чтобы не дай Бог ничего и никогда А вот когда ты что-то хочешь менять напротив То есть ты идешь на сейдж накатываешь там соответственно миграцию Да ну и соответственно работаешь а напротив Ты передаешь миграции и уже там ты без данных которые ты что-то там сделал на Stage можешь создать эти Новые чистые таблички ни разу не наделанные поэтому миграция имеет смысл хранить эти то есть чтобы можно было потом доработать вот эту продажу базу А саму базу данных не надо хранить потому что она везде разная

    00:47:20 - 00:48:40

  • Так что вот такая история в целом Окей Так что если хочешь мой фидбэк дело в том что эти вопросы Я подал украл с настоящего собеседования вот там был оффер на 60 тысяч вот ну там правда еще дали некоторые задания небольшое здесь нужно было посмотреть твой гид посмотреть насколько интересно ты хорошо пишешь запросить базы данных рекомендую копать посмотреть вот В какую сторону в оптимизацию запросов то есть чтобы было поменьше Ну поменьше сущности пролезал то есть максимально хорошие Ну и аннотации

    00:48:00 - 00:49:34

  • вот это вот все и к запросы к связанным моделям prefetch relate селектор lated если у тебя это в проекте я где-то был Увидел то наверное у тебя был буфер Так что посмотри свои проекты подумай как можно оптимизировать запросы а ну и будете счастье в целом хорошо молодец [музыка] подробный фидбэк я понял Куда что надо подтягивать в целом прям хорошая база хорошая заготовка и действительно чуть-чуть шлифануть на печку [музыка] хорошее впечатление красавица Молодец жду тебя на канале когда получишь оффер поговорим что что

    00:48:49 - 00:50:41

  • спрашивали как ответил Чем занимаешься Но если это будет конечно так что так ну на сегодня это все спасибо большое Пока пока

    00:49:47 - 00:50:13