Собеседование на позицию Backend Developer Python + Django Middle #1

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

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

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

    00:00:00 - 00:02:00

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

    00:01:08 - 00:02:54

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

    00:01:59 - 00:04:01

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

    00:03:14 - 00:04:48

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

    00:04:06 - 00:05:50

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

    00:04:57 - 00:06:19

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

    00:05:40 - 00:07:09

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

    00:06:26 - 00:08:03

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

    00:07:16 - 00:09:02

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

    00:08:09 - 00:09:33

  • нет такого понятия как интерфейс и чистая и поэтому вот это актуально но в принципе это относится больше к интерфейсам чем классом структуру хорошо четвертый принцип разделение интерфейсов то что много интерфейса разные назначения лучше чем один которые там кашин все объединяет в себе тут опять таки тоже таковых интерфейсов нету но не на youtube и в питоне есть например абстрактные классы которые могут выполнять роль arteries of а почему этот принцип ну достаточно важно потому что у нас архитектура если мы в одно все соберем и

    00:08:56 - 00:11:03

  • он этот класс который мы абстрактно драйвер sis можно так выразиться мы его будем использовать допустим даже двух трех четырех других классов и от него нужно будет буквально там 1 2 метра давно будет сто-двести а что в этом плохого вверх от дела ну кроме того что много подсказок вскакивает и я какие до этого минуса как минимум это неудобно масштабировать не понятно что именно нам нужно потом это будет накапливаться и вместо того чтобы создать нужно чего-нибудь внести функционал достаточно создать

    00:09:58 - 00:11:18

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

    00:10:41 - 00:12:36

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

    00:11:43 - 00:13:39

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

    00:12:52 - 00:14:35

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

    00:13:48 - 00:15:59

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

    00:15:10 - 00:17:14

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

    00:16:18 - 00:17:54

  • ну нам нужно дополнительно туда и сюда правительство тогда нам нужно получить номера комнат допустим это нами ранее вешняки комнат который к нему привязаны а содержится каком-то другом начали поле ну тогда можно сразу получить курицу добавить до комнаты техника пользуйтесь внезапным позволит сми целый данные об аниме им пользовались с или кирилл и с электролит от пользовался я вот на это на металл что вам нужно использовать electric да и вместо там н н проходим запросов сделать 2-ой 1 год тогда это моя вина me to select relate

    00:17:23 - 00:19:21

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

    00:18:25 - 00:20:34

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

    00:19:39 - 00:22:07

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

    00:21:09 - 00:22:47

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

    00:22:07 - 00:24:02

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

    00:23:03 - 00:24:35

  • добра ну можно в игрушки посмотреть там iv request юзеру тот который делаю запрос то тогда делать из нет спокойненько а вы работали с дарой of permissions вот а почему не предложили туда это например вынести так как это нативный способ управления доступом на начале говорил то что выпроси реализатор сказали возможно я вас неправильно понял хорошо так это что было про управление доступом да ну да вы тогда наверное еще общее такие вопросы что такое растопи чем где она применяется какие она носит требуем ну условно какие

    00:23:50 - 00:26:26

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

    00:25:10 - 00:27:05

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

    00:26:09 - 00:28:47

  • я думаю дальше там прошла не так давайте поговорим про эскель насколько вы глубоко оценивайте свои знания из клиентам и конкретно поздра работали с view вами мозга и их ещё называют виртуальная таблицы что такое индекса знаете тогда какие знаете для чего применяются из не принять чтобы за хэшировать данные и скрипта ходил поиск по таблице что они конкретно к ширу словно ключи хорошо а вот такой какой методологию пока b3 индекс для хранения записей словно разбиение на какие-то части деревьев дал личность в принципе там

    00:27:32 - 00:31:04

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

    00:29:23 - 00:31:31

  • вот как раз например и все больше вам не нужны никакие компоненты просто как вы запустили брокеры сразу можете включить надо настроить ну я имею ввиду на каких ой какие то еще составные части есть ну как минимум еще одна основная часть должна быть это экзекутор который непосредственно выполняет код ты до django передаёт какую-то задачу и лари ой ты break free disk который хранит у себя ее статус информация необходима для выполнения выполнять непосредственно экзекутор который может быть локальным

    00:30:34 - 00:31:59

  • то есть развёрнут на той же машине допустим на соседями ядре а либо может быть удаленным ну к примеру там их может быть штук 20 как правило кроме брокеры ещё поднимается менеджер очередей обычно необычно анкрич достаточно четко для этого используют flower он следите за тем чтобы компьютеры не падали сколько они там отъедают ресурсов и тому подобное добро вот смотрите вот у нас есть базар и базары где нам лучше хранить как хэши почти почему ну допустим кошка просто ради всеобщего винить а почему ну потому что нам не

    00:31:30 - 00:33:22

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

    00:32:35 - 00:34:39

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

    00:33:37 - 00:35:30

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

    00:34:40 - 00:36:24