Подготовка к собеседованию на C# Developer
Менторы
Специалисты своей области, которые смогут помочь вам
Middle .Net Developer
Senior Product Manager
Middle Python Developer
Ведущий программист
Backend Software Engineer (PHP)
Senior .NET/C# developer
Middle DevOps Engineer | Tbilisi, Georgia
Middle C# .NET
Senior PHP-разработчик
Middle python developer
Каналы
Полезные Telegram каналы и чаты
Транскрипция видео:
Всем привет С вами илип и Сегодня у нас Джоб интервью с человеком который как такового коммерческого именно опыта не имеет но там работает на стартапе у товарища Ну я думаю он сам о себе расскажет вот может немножко о себе вообще рассказать чем занимался что чего хочешь достичь на данный момент да Всем привет Меня зовут Женя я Ну как таковой опыт можно сказать 202 чуть больше 2 лет сам занимаюсь получается до этого времени об ашке вообще ничего не знал и подсказал мне друг который уже на то время работал предложил
00:00:00 - 00:01:40
попробовать Он предложил сразу как сказать пойти на практику и создать свой проект Вот в это время я параллельно смотрел видео писал код Ну и в принципе так сложилось До сегодняшнего момента пока вот уже конкретно не решился и не начал искать вакансии и пробовать на собеса да да тут Важно Уточнить что с двадцать первого года это именно первый опыт проект у тебя Да был сразу начал писать свой проект Ну мы там что-то так накидали идей попробовали и вот да а вот второй опыт который у тебя там с середины дцать второго это уже
00:00:52 - 00:02:34
некий стартап Да товарищи Ну да он решил написать для себя программу так сказать доходов расходов и начал делать свой проект и подключать туда уже и фронтенде и тестировщиков и получается я вот работал в этой команде пробовался Угу Ну то есть по факту по сути у тебя на данный момент прямо коммерческого такого опыта нет коммерческого Да нету Угу Окей хорошо А чего вообще хочешь добиться сейчас вот я так понимаю ты начинаешь искать какие-то вакансии хочешь на какую позицию попасть сразу ну Для начала я в принципе не
00:01:44 - 00:03:23
против стажировки и не против жуниор позиции Окей Ну тогда будем собеседовать тебя как Джуниора ну Да хотелось бы попробовать и узнать вообще мои знания хорошо Ну это Это хорошо на самом деле что есть такие желания Окей давай Я немножко расскажу Вообще про А я нено сделаю сначала точно У меня же я вот на прошлой по-моему неделе запустил консультации вот ребят если вам нужно можете приходить ссылочка под видео Я в гра Боте отвечаю всем так что ребята бегом бегом Спасибо большое Вот давайте давай начнём сразу с технической части
00:02:31 - 00:04:06
начнём с таких элементарных тем будем немножко усложняться и к конц может немножко поговорим в принципе чем при И именно поэтому вопросы позадаю Что если хватит времени Окей давай начнём с элементарного с ооп Что такое ооп Расскажи про парадигмы принцип О ну оп Это на что объектно ориентированное программирование которое основано на том что мы в программировании работаем с объектами их взаимодействие друг с другом принципы О - это ой инкапсуляция полиморфизм и наследование получается основные три
00:03:20 - 00:05:05
Давай немножко поговорим про полиморфизм Ну полиморфизм представляет собой что как один из это перегрузка методов один из видов потом Ну и дженерики вроде бы Ну на самом деле там каждый по-разному выделяет Ну вот можно выделить три типа полиморфизма знаешь их наверное не скажу Да я сейчас буду фиксировать вот эти вопросы которые ты не смог ответить А ну потом тебе их скину чтобы ты мог сам пройтись по этим вопросам и подготовиться Ну к реальному собеседованию Угу Где будут проблемы Я просто их зафиксируй и тебе уже скину
00:04:15 - 00:05:54
Окей давай дальше пойдём немножко про Solid слышал что-нибудь Solid Ну да Solid - это так сказать набор правил для Ну удобного программирования так сказать Ну это очень грубо говоря то есть это принци Ой давай про эти принципы поговорим Назови их принцип названия А дальше уже я задам вопрос по конкретным хорошо первый принцип единой ответственности это это принцип открытости закрытости Принцип постановы [музыка] барро разделение интерфейсов и принцип там э dependency inversion это как инверсия э инверсия в зависимости про
00:05:10 - 00:07:10
Угу смотри Э я не в первый раз уже слышу такую оговорку когда люди говорят единая ответственности а не так звучит немного Да принцип единственной ответственности Она всего лишь одна единая это как бы для всех а да едино это что из раз общее типа общее для всех единое для всех то есть одна ответственность на всех распространена но это это не ошибка я просто Уточняю Ой хорошо Давай поговорим про принцип постановки барсков про Di давай начнём с барбера лисков что это такое что он из себя представляет Ну в принципе
00:06:16 - 00:07:59
это способ так сказать когда мы в код подставляем нашего сейчас мы должны делать код так чтобы при наследовании могли использовать как родителя так и наследуемого ну наследуемый класс для то Ну и чтобы код Не изменялся ну точнее результаты кода поведение кода не менялось Ну в принципе правильно А можешь пример привести Ну например есть класс не знаю Может какой класс не знаю может нет ой что-то с этим сложно немного Как так Да ничего страшного потом поищешь подумаешь всё прекрасно Давай тогда про немножко в принципе Ты
00:07:09 - 00:08:59
теорию барли знаешь саму да Да часто спрашивают на самом деле про примеры потому что примеры дают больше понимания Действительно ли Ты осознаёшь что это за принцип или нет ну то есть либо ты просто выучил теорему теорию саму сам принцип вот поэтому важно уметь привести пример давай про Di поговорим инверсия зависимости что это такое получается э блоки верхнего Ну блоки верхнего уровня не должны зависеть от блоков нижнего уровня и э реализация реализация должна зависеть от абстракций Как сказать
00:08:26 - 00:10:13
Ну не совсем корректно да оделение но немножко сами термины подкачали Да в принципе все они должны зависеть от абстракций Вот и верхнего уровня и нижнего уровня вот Окей хоно мы используем интерфейсы для создания каких-либо зависимостей так сказать дамы этому к этому е перем хо А давай пример в принципе Ну не совсем пример даже может быть а какие подходы используются для для соблюдения Di по идее мы используем для этого то есть вот у нас есть репозитории и мы его прокиды не какм а он наследуется от интерфейса и этот
00:09:26 - 00:11:32
интерфейс мы используем в других классах по идее а есть ещё какие-нибудь примеры у тебя помимо Di Ну связь между например контроллерами и сервисами логика сервисов сервис локатор нет на хотя бы может быть с ним работал но так теории А ты сам выключаешь микрофон или он у тебя как-то выключается сам отключаю Да а О'кей Хорошо давай тогда дальше пойдём и перейдём сразу к к типам навер какие у нас языке бывают типы Ну это два основных вида ссылочные и значимые типы давай начнём со значимых Какие типы являются значимыми В
00:10:32 - 00:12:25
чём их особенность Ну это примитив так сказать примитивные типы это бу и по идее Сюда можно включить а структуры структуры да Ага А в чём их особенность вообще этих типов значимых в том что они как бы находятся в стеке и при передаче их создаётся копия обекта сза зна Нет это зависит от того где они проинициализирован То есть если они в классе проинициализирован то будет в куче Угу А что в принципе из себя представляет стек что это такое Что это за структура такая данных стек - это область памяти так сказать Я точно
00:11:46 - 00:13:43
не помню вроде бы выделяется на 1мб Я имею в виду вот Это понятно что это какая в какой-то области памяти находится я чуть-чуть более высокоуровневый что из себя представляет структура стек Вот именно тип такой стек А ну ты как не как очередь он работает первый вышел последний Ой нет ну первый вышел последний ушёл Да вроде бы так одно и тоже первый пришёл последний ушёл пос да да Угу О'кей хорошо Так давай тогда немножко про ссылочные типы поговорим а расскажи про про них и их особенности Ну ссылочные типы у нас
00:12:54 - 00:14:44
хранятся в э куче и в переменной находится ссылка на этот тип и работаем Мы в принципе с Ну ссылкой на этот объект и уже ну то есть работаем с оригиналом так сказать А что ещё сказать примеры примеры ссылочных типов классы это как основной пример ээ Ну стринг Сюда нельзя включить Не совсем подходит Почему и ну стрин - это как что-то между как это Это ссылочный тип Ну он ссылочный а ссылочный тип Но со своими особенностями Ну мы к этим особенно позже перейдём Давай помимо стринга что ещ классы Ну
00:13:51 - 00:15:56
интерфейсы что ещ Дава массивы например массивы Да так хорошо давай раз про стринги заговорили далеко не отходя А в чём особенность стрингов в том что если мы задали значение его сказам изменить Новый объект Как называется такое свойство иммутабельность Вроде да Хорошо Может ещё какие-то особенности Ну и при работе со стрингами нужно если мы их много раз планируем изменять лучше использовать string Builder Ну который создаёт массив который можно изменять не создавая новые объекты и потом просто
00:15:02 - 00:16:52
Ну при завершении работы выдаёт строку Окей что-то ещё вроде бы А ну если у нас есть значение стринга Например привет И мы создаём новую переменную то он просто берёт эту Ну переменную из памяти и не создаёт нового Ну хорошо я я понимаю о чём ты говоришь как называется не так немного да Ну просто ты не совсем точно описал Ну то есть то что ты назвал это литералы строковые литералы да да А как называется вот этот механизм при котором блица или как ска не это-то понятно как она реализована даже не не суть Я к тому как
00:16:00 - 00:17:49
называется вот этот механизм который позволяет нам достигать переиспользование литералов одинаковых Да понял о чём ты не скажу сейчас не вспомню это на самом деле мой любимый термин потому что я его Постоянно забываю Вот это интернирование рок а вот Вот точно есть тако угу вот О'кей давай дальше пойдём э сильно мучить по стеку куче не буду Давай пойдём про начнём со в принципе про кучу нормально знаю вроде как с поколениями давай давай давай тогда расскажи что знаешь про кучу Так что счита важным Ну у
00:17:07 - 00:18:42
нас так есть в куче три поколения нулевое первое второе э почему три это уже сделано так сказать путём исключения путём опытов пробовали больше пробовали меньше и вы подожди пожалуйста Ты ты рассказываешь про Garbage колектор и поколение поколение не кучи а Garbage коллекторы он понял А ну да рбш коллектор работает с кучей Всё правильно Тогда ладно У на есть ку А ну давай начнём с этого хорошо Ну то есть я не против того что прош колектор расскажешь Я просто Уточняю понял Ну как сохло и да на самом деле неважно ты лучше
00:17:57 - 00:19:45
знаешь что Скажи для чего нужны эти разделения разделение для того чтобы более Ну у нас куче лежат объекты друг рядом с другом и при их удалении остаётся так сказать место которое надо будет все объекты сжимать для этого для больших объектов в которой они лежат и предположительно не будут удаляться а почему а объекты не будут удаляться Да сами вот эти большие объекты для того чтобы не использывать фрагментацию вро дефрагментация фрагментацию Ага ну то есть если тебе правильно понял ты имеешь в виду что
00:19:01 - 00:20:39
куча больших объектов не фрагменти Ну очень редко так сказать да А я думаю что не дефрагментировать вообще може что я конечно ошибаюсь я проверю Мне кажется она вообще не фрагменти но не суть А хорошо А что-то ещё может про кучи про рбш коллектор хочешь рассказать Ну да что рбш коллектор у нас э используется так сказать автоматически он почищу файлы объекты когда когда это необходимо То есть когда память у нас переполнена и разделяется как я говорил на три поколения нулевое первое и второе все объекты в основном
00:19:54 - 00:21:30
попадают в нулевое поколение после прохода гарш коллектором ставится метка и Они отправляются в первое поколение и потом во второе ши обекты вроде идут во второе поколение и при необходимости нам освободить память гор коллектор сначала идёт в нулевое поколение чистит там всё если не хватает то в первое вроде бы а по какой каким образом вообще запускается сборка мусора Ну она запускается вроде как автоматически когда нам необходимо освободить память Ну то есть уже не хватает памяти а когда мы это Понимаем что нам
00:20:44 - 00:22:28
Каким образом мы мы знаем что нам вот конкретно в этот момент времени не хватает память какую операцию мы пытаемся сделать чтобы это понять ну чисто чисто логически постоянно может быть он сканирует или что-то ещ или есть какой-то Триггер где он проверяет наличи памяти как я знаю мы об Ну стараемся не следить это уже более наверное на низких уровнях программисты сами контролируют эту кучу и смотрят А так он автоматически не просто ты говоришь то что он запускает сборку мусора Когда нам не хватает
00:21:40 - 00:23:14
Когда у нас мало памяти а для чего нам памяти не хватает для создания новых объектов Ну то есть триггером является необходимость создать новый объект Да ну вот получается так хорошо давай уйдём от этих куч прочего я не думаю что джунов сильно мучат По этим вопросам вообще Ну да да давай по поводу вот думаю структуры класса Нет давай абстрактный класс интерфейса В чём их разница чмх особенность Так ну абстрактный класс получается что абстрактного класса мы наследование может быть только от одного абстрактного
00:22:29 - 00:24:09
класса реализация интерфейсов Может быть но и использовать Подожди подожди я что-то наследовать абстракт АБК клас мы можем один только наследовать Да а реализовывать интерфейсы Ну несколько Ну можем мы абстрактные классы реализовывать Нет это реализация только интерфейс А если у нас там есть виртуальные методы абстрактные абстрактные абстракт методы АБ без собственной реализации реализации Ну это мы реализуем методы но не сам класс А если все методы абстрактные в классе и класс абстрактный э загнал меня немного в тупик
00:23:24 - 00:25:17
но всё равно Мы же наследуем от абстрактного класса а потом уже реализуем эти методы Окей А в интерфейсах мы множественно реализации Возможно да да а внутри интерфейсов можно реализовать что ещё раз прости внутри интерфейсов можно написать реализацию вообще нельзя было но С недавнего времени так сказать можно написать базовую реализацию знаешь я примерно Блин я себя слышу я Я примерно так же отвечал года три назад Как долго будет длиться это недавнее время я пока не знаю Ну окей не пользовался но знаю что
00:24:30 - 00:26:13
можно да реализация интерфейсов по умолчанию Окей хорошо В чём разница вот Роме наследования реализации между абстрактными классами и интерфейсами ну в том где они применяются Мы в основном абстрактные классы используем как какую-то базовую сущность которая у которой имы к этой логике можем добавлять свою с наследованием немного отличную от этой а интерфейс больше уже как у меня есть хорошие примеры в этом то есть абстрактный класс нужен для для работы со свойствами так сказать инте для какого-то
00:25:29 - 00:27:29
действия методов то есть использования интерфейсов А я думал ты мне пример скажешь у тебя давай есть пример может какой-то или можешь придумать пример где ты бы использовал абстрактный класс А где интерфейс абстрактный класс например персонаж ээ У нас есть персонаж там с базовыми ХП уроном и также есть герои А есть какие-нибудь Монстрики Это я сейчас пример просто потому что мы пишем код и что-то такое есть Вот то есть базовый класс лучше здесь использовать персонажа это абстрактный клас а интерфейс Ну
00:26:31 - 00:28:05
интерфейс хороше я не помню где слышал со способами доставки То есть у нас есть доставка но мы можем её как выполнить разными действиями Ну например я у себя раза три говорил про это Но я тоже где-то это читал читал тоже слышал ну я это в трёх своих видео называл А до этого ну может лет п назад я это где-то прочитал Ну вот это вот мне очень всё залез в голову хороший пример СС по СМИ доставки по воздуху по земле там ещё как по воде да Это скорее всего Окей хорошо Давай немножко дальше пойдём Давай кнту перейдём Что
00:27:21 - 00:28:54
такое ан используется для работы с асинхронным кодом ну с асинхронность мы используем сейчас получается мы создаём тас а помечается метод асинхронный А мы используем для того чтобы код нел дальше а ждал ответа от зада ждал получения ответа задачи глупо звучно Почему глупо лу м как оно вроде бы понимаешь но выразить Это чуть-чуть сложнее А вообще понимаешь авей устроен Да он там я вот не так давно об этом читал он ну раскладывается и в тас вроде бы и там ждёт ответ и только потом идёт дальше по коду Ну да типа того там
00:28:13 - 00:30:46
по-моему типы создаются на каждый там промежуток кода не суть такие Дели ты и не зна Вот про многопоточность что-нибудь слышал ну многопоточность это использование нескольких потоков одновременно так сказать приходилось работать ну меня сразу писать Ну Везде где нужно поэтому только с ними я работал а с конкурентными коллекциями знаком только теоретически Ну какие конкурентные коллекции Ты знаешь Ну [музыка] Con кри вроде бы ну я вот не помню linked list сюда не входит Нет нет это ну Car сес приставкой concurrent но только
00:29:47 - 00:31:52
не все коллекции Ну вот какие это вот Dictionary concurrent лист наверное вроде бы тоже Ну он по-другому называется сумка как сумка сумка понял вот ну то есть чем В чём их отличие у них есть методы которые там например TR Get и такое то есть они проверяют возможность возможность изменения этой таблицы для потоков Угу Ну О'кей давай немножко про делегаты поговорим и там перейдём дальше уже Что такое делегаты какие там конкретные делегаты Ты знаешь э делегат - это если грубо говоря Это ссылка на метод у
00:31:15 - 00:33:15
нас основные делегаты это какие экшн и Ну Action получается э предикат а вот предикат получается Ой только вот я не помню э у нас ничего возвращает но принимает Даш принимает и возвращает получается И предикат - это возвращает булевое значение Угу логически хорошо слышал что-нибудь про мультикаст делегаты Ну это получается делегат который в себе хранит хранит другие делегаты вроде бы ну вложенные делегаты получается Если я правильно понимаю [музыка] ну ну типа того да Ну окей давай лучше перейдём к еф в
00:32:19 - 00:34:30
принципе абстрактно са эту теорию си знае поэтому ят с ней Давай перейдём к конкретным технологиям там Ае fastnet и прочее вот я начал с ефа наверное работал вообще с рэмка какими-нибудь Да наверное только с а с ефом и работал Ну вот я так и подумал поэтому сразу спросил давай начнём с ефа что это такое для чего ты его использовал для какого сервиса там может своего и дальше уже пойдём конкретнее Ну EF - это Омка для работы с базой данных получается Ну достаточно удобно мы можем там есть несколько
00:33:51 - 00:35:32
вариантов это CDE First Database First это ну два основных но есть третий честно не скажу Я использовал First способ создания всё больше нового узнаю А какой ещё вариант может быть третий а там что-то было или с шаблонами какими-то или что-то Ну короче мне казалось всегда три варианта Я всегда думал что либо ты из кода создаёшь базу либо ты из базы создаёшь код Ну да это прямо два основных Ну значит я не туда посмотрел возможно я кони Ну окей давай дальше пойдём по поводу ефа Может быть я реально ошибаюсь я
00:34:40 - 00:36:16
потом посмотрю окей е Для каких случаев Что за сервис у тебя был ко где ты его использовал Ну в своём проекте Я использовал для создания таблиц там Юзе Ну если это то там были просто юзеры и слова которые он изучал так сказать и была промежуточная таблица это User Words Ну всё для создания конфигураций для создания БД и таблицы в базе данных Я использовал понял да Хорошо давай по поводу ефа Да продолжим да О отлично ефм Продолжим что такое трекинг еф сталкивался слышал что-нибудь про это что-то очень знакомое
00:35:34 - 00:37:40
но рейтинг Ну да отслеживание твоих сущностей Нет чуть-чуть наверно не н ну постоянно мониторит отслеживает изменение твоих сущностей А дальше что миграции делаются тут вообще ни при чём я именно про использование ефа для взаимодействия с базой миграция - Это скорее про процесс преобразование из одной формы в другую например из кода в базу данных вот а я говорю про использование уже конкретно Ну то есть у тебя уже создана миграция они уже применены база данных создана и ты вот в коде например пишешь
00:36:42 - 00:38:10
да например ты забираешь сущность из базы забрал её написал там не знаю US равно там я не знаю Иван и пишешь таким образом ты можешь изменить сущность потому чтот т я вот об этом гово ну в основном понял Ну окей про трекинг прочитаешь ещё ничего страшного Хорошо давай дальше пойдём про Ну про кэш нано нет смысла спрашивать про кэширование этого еф кора Ух Не наверно так глубоко ещё не копал окей Не страшно А что вообще из себя представляет Вот смотри мы пишем код что происходит Дальше мы вот например у нас есть контекст Да в
00:37:36 - 00:39:14
контексте указываются наши ДБ сеты например таблички Да мы Обращаемся к табличке и пытаемся записать туда свою сущность новую добавить например нового юзера загрузить что происходит Каким образом EF загружает сущность в базу данных добавляет Ну это всё преобразуется в SQL код на создание таблицы со всеми столбцами и просто у нас есть так сказать поди секундочку А столпцы созданы ещё до того как мы приложение запустили таблицы созданы до того как мы приложение запустили Ну как правило если мы апдейт нули его ну то есть у нас
00:38:30 - 00:40:03
таблица есть ПД создано всё О'кей нам просто нужно добавить юзера а добавить юзера в столбец понял ээ в таблицу Да хорошо Ну создаётся тогда SQL код на создание юзера получается там Конечно есть просто в контексте уже этот метод Set например и но без Давай потихонечку потихонечку что замесе что ещё раз ты сказал про метод Set что это ну это э нет Set - это установить метод Add добавить юзера в таблицу users S получается мы Ну о'кей О'кей давай давай вернёмся всё-таки к методу Set что это за метод
00:39:16 - 00:41:19
Это очень хороший метод поэтому я его давно уже не встречал работал с методом се методом нет наверное нет ну Он позволяет через дженерик достать нужную тебе сущность Ну таблицу Вот например ты можешь в ДБ контексте написать кучу твоих табличек Да dbs там не знаю User dbs там не знаю Person и что-то ещё там вот а метод Set через метод Set можно написать db контекст там точка Set дженерики передать Тип и он тебе отдаст таблицу этого типа а просто целую таблицу Да тебе не нужно будет знать конкретное название в
00:40:28 - 00:41:56
свойства в ДБ контексте тебе достаточно будет передать тип твоего свойства и он сам тебе достанет эту таблицу нужную Тебе это обычно используют когда делают genic репозитории то есть они используют метод Set и передают обобщение Ну пишут т в дженерики А когда ты используешь genic репозиторий да ты его из Di достаёшь вместо Т подставляешь конкретный класс тип Да и он тебе подсовывает туда твою таблицу нужную Вот для этого именно используется се Прикольная штука не знаю вот Окей давай по поводу Add теперь вот смотри мы
00:41:14 - 00:42:33
вызвали Add Да ну это си Неважно Что происходит этот момент ну Мы создали SQL код по добавлению этой сущности то есть всё это в виде SQL не знаю не кода а запроса наверное и только после Save changes мы добавляем объект Слушай а как ты думаешь Действительно ли при вызове метода уже генерируется SQL код Давай просто тебе пример приведу Например у тебя не единожды ты добавляешь а 10 раз вызвал метод Как ты думаешь Вот если ты 10 раз вызвал метод и один раз написал что произойдёт он 10 разных запросов сгенерирует и отправит или в
00:41:53 - 00:43:36
один соберёт Нет ну вся логикам и создаётся один единый запрос и только после этого то по сути это а Син не генерирует запрос SQL запрос по сути да без SA changes ничего не будет Угу Ну О'кей Хорошо давай тогда ну по поводу мы и так уже а нет можно по загрузку связанных сущностей поговорить ещё а то что используем Если через SQL - Это джоны если через то иды Ну например инклуд да ещё два типа подгрузки связанных сущностей Ну include и потом если у нас сущности ещё сущность incl Нет это вот один тип -
00:42:49 - 00:44:43
это иды да ещё два способа есть Ну я только ими пользовался в основном либо само скуда писал через Jo и так чего я записал вот это слышал что-нибудь такое Ой давай не будем на этом останавливаться Ничего страшного закончим а перед тем как перейти к аспене тамм и прочее Я наверное немножко про SQL спрошу на всякий случай Что такое индексы индексы ээ Что такое Да индексе в ба понима данных ну индексы нам нужны для того чтобы мы могли более продуктивно извлекать данные из таблицы А что Т Что значит
00:43:51 - 00:45:50
продуктивно Ну трать на это меньше не знаю ресурсов времени Давай более быстро если это таблица большая Давай немножко назад вернёмся Какие бывают индексы вот их там куча Но я хотя бы хотя бы парочку парочку не вспомню Да я знаю вот эту вот тему нужно хорошенько закрепить окей да зна индексов тоже Это такая вещь очень с ней нужно очень осторожно и нельзя использовать слишком много индексов что повлияет на то что мы хотели ускорить будет только хуже Почему А в принципе что ещё по ним не Почему может может быть ухудшить
00:45:09 - 00:47:01
что-то Ну потому что при создании нового объекта все эти таблицы индексов переписываются и то занимает какое-то время оден при добавлении индексом мы возможно будем получать данные быстрее но но добавлять данные будем дольше правильно Да Окей хорошо Ну про поиск по индексам наверное Говорить не стоит Да как Каким образом индексы оптимизируют запрос Ну то есть Каким образом ты быстрее получаешь данные Ну просто ИТ по индем не не проходя вроде бы по всей строке он ищет только по индексам что происходит ну
00:46:10 - 00:47:46
быстрее А каким образом например элементарный бит Ну по иде его сразу находит можно сказать Ну понятно как это сразу находит а как по индексу Ну не знаю у тебя миллион записей ты будешь for делать по каждой по каждому индексу У тебя же на каждый на каждую запись будет Ну ты ты говорил про таблицы индексов у тебя Вот например миллион записей Сколько у тебя записей будет в таблице индексов столько же если не больше ну вот а каким образом он ищет по этой таблице индексов просто м миллион записей перебирает или
00:47:05 - 00:48:20
что как я понимаю форы ищем только индексы Ну О'кей Ну там есть алгоритмы поиска Ну ну можешь прочитать потом у меня тем более видео есть как он там ищет Я там объясняю вроде ну О'кей а Давай перейдём чуть-чуть дальше тоже про SQL про с транзакциями Эльми работал с транзакциями Нет Угу а слышал что-нибудь про уровни изоляции транзакций Наверное нет Ну read comit там repeatable readable я это читал но это было как-то уже давно надо нужная тема с транзакциями Ну если про база будут спрашивать могут
00:48:06 - 00:49:32
спросить конечно да А про что-нибудь Нет ну это тоже ближе транзакциям если быть точнее там Вот это тоже ближе к транзакция тоже могут спросить понятное дело реже чем Solid Но если про базы будут Ну если важны Твои навыки с точки зрения взаимодействия с БД то не спросить про наверное будет ошибкой Хорошо давай дава Что такое нормализация данных в базе данных ну нормализация получается что-то вроде оптимизация база данных хорошо А каким образом оптимизировать базу данных в рамках нормализации то есть если у нас есть
00:49:04 - 00:50:59
например очень хорошо всё разделять на таблицы То есть если у юзеров есть города то проще вынести города в отдельную таблицу и просто подставляйте айди ники Ну или города стран вместо того чтобы писать в каждом Юзе название ты мне хочеш ты мне пытаешься рассказать про нормальные формы наверное да Ну слушай и это то что я помню это то что я вспоминаю Ну короче Прочитай так чист на досуги про нормальные формы их там шесть основных понял Угу А давай такой абстрактный вопрос знаешь для чего нужна нормализация и всегда ли нужно
00:50:27 - 00:52:10
нормализовать данные или есть кейсы при которых нужно наоборот денормализация наверное делается для того чтобы эти данные были как-то упорядочены и м нечитаемые а чтобы с ними удобнее было работать из Ну то есть доставать и в принципе для работы с базы данными с базой данных по поводу де нормализации Я думаю конечно есть такие кейсы где не такого не отвечу это ситуации когда тебе нужно оптимизировать скорость выполнения запроса у тебя например есть таблица которая куча икв Ну вот в ефе Ну либо джоно либо нужно например у тебя есть
00:51:24 - 00:53:12
таблица заявка Да и к этой таблице заявку заявка Джони дофига сущностей например там статусы например там всякие справочники например тип докумен прочее прочее прочее да и у тебя вот этот вот таблица заявок Да ты пытаешься там по ней сделать Селект и она очень долго работает Ты видишь что у тебя там в каждой сущности есть например там какая-то другая сущность которая Джони которая можно денормализация водить статус заявки Да мы оставляем поле Вот это ID заявки Да которое было Ну ID статуса но в то же время добавляем
00:52:43 - 00:54:02
ещё одно одну колоночки заявок не надо дишни и все его там и прочее отображать тебе нужно только название статуса написать и ты такой Бер колоно добавляешь наз статуса таким образом нормализованные Таким образом у тебя делается на один дн меньше а ну понял то есть при больших да когда тебе нужно оптимизировать запрос вот у меня на работе есть там одна такая таблица которая там около 30-40 Джой вот и это Это ад сколько она там вытягивает по времени Смотря сколько ты хочешь получить Ну бывает больше
00:53:35 - 00:55:09
минуты поэтому Ну мы временное решение придумали что отдаём просто не больше не больше заявок чем за 3 дня вот ну по дефолту дел А если тебе нужно больше заявок ты можешь указать больше но Будешь ждать долго Ну это Костыль решение понятное дело чтобы быстро решить проблему первичной загрузки Ну дальше мы уже её иначе уже решаем Там просто чуть сложнее дальше что делать если джоны всё равно остаются просто денормализация нормализации то есть не вот в чём проблема вот этой вот моей таблицы конкретного примера Да что люди на
00:54:28 - 00:55:49
каждый справочник предположим Да мужской женский пол они сделали таблицу и добавили мужской пол женский пол две записи но из-за этого каждому человеку и каждой заявке там Джони таблице вот этих вот гендера мы легко можем заменить этот гендер даже Элементарно на Ну Bull Ну то есть либо Ну не указано либо ЛС там не знаю мужской женский Это конечно не очень правильно но всё же это Это будет лучше чем выносить это в отдельный гендер Ну таблицу я я понимаю что кто-то может там из ЛГБТ комьюнити сказать что
00:55:18 - 00:56:31
гендера не два но биологически биологических частью их д вот поэтому Ну то есть вот такие вот очевидные вещи понятное дело можно то есть бывает иногда три у тебя там Записи в справочнике тоже их можно вынести как не знаю эна например вна перевести в коде и тоже уже ты оптимизирует свой зас понятно дехто не сь из по прине того табли Ты же не будешь таблиц каждый раз запихивать в алике Максимум что ты сделаешь Например тебе нужно в списке заявок отображать имя да Ты максимум можешь нормализовать добавив колонку
00:55:53 - 00:57:21
имени его а в любом случае останется тоже самое что я и говорил про статусы то есть какое-то конкретную поле колонку котора чаще всего отображается можно тоже нормализовать сома денормализация Потому что пернов много и соответственно на каждую строчку не будет уже применяться Join вот и это сильно ускорит работу это всё к вопросу о о оптимизации запросов сны мы поговорили сначала про индексы потом про денормализация есть ещё анализ Конечно вот этих запросов и Кстати я недавно разговаривал только с
00:56:37 - 00:58:00
кем-то по поводу вот в постс есть такая команда анализа которая определяет куда можно повесить индексы короче вот в тоже самое время люди используют профайлеры когда работаю сфм использ вешают профайлер смотрят там Что там с запросами Какие запросы дальше всего отправляются анализируют тоже помогает работал с профайлера когда-нибудь приходилось нет че не приходилось немногим приходит давам к нашим баранам так сказать про SQ поговорили закончим давай про spn немного начнём наверное с midle Что такое
00:57:24 - 00:58:50
лва нува это компонент который используется для обработки запроса запросов и он находится в конве обработке запросов только HP запросов Может ли па не обрабатывать HP запрос я работал только возможно нет не только Давай предположим что у нас вообще Ашка не на htp Ну да всё равно же приходит какой-то Ну например например у нас взаимодействует только через sign там через сокеты взаимодействи вот а конвейер также есть и вот эти вот сигналс хабы они встроены в конвейер обработки запросов вот ну это я так
00:58:08 - 01:00:05
чисто докопался Извини понял не нормально правильно Так О'кей давай пойдём дальше а приходилось писать свои Вари Ну если приходилось то Это скорее их можно было бы заменить уже встроенными Но типа например обработки ошибок Я наверно Окей хорошо А слушай слышал что-нибудь про фильтры который также встраивается в pel фильтры наверное нет Action ф EX ф ф и так далее Ну это то что обычно или это не ну слуша это что-то очень похожее на Но это отдельные сущности они также встраиваются как Просто они там выполняются обычно А ну
00:59:24 - 01:01:20
то что вставлять Нет это для для встраивания в то что ты назвал и так далее А есть ещ фильтры Вот например ты сказал что ты делал которая обрабатывала ошибки А ты мог сделать Ну ты мог сделать ф который тоже обрабатывает ошибки но он тригери только тогда когда произошла ошибка То есть если у тебя в в конвейере про ошибка при обработке наме мето контро в таком случае сработает вот этот вот фильтр и там внутри будет метод on Exception либо Вот и когда произойдёт Exception ты именно тогда будешь тригери на вот эту
01:00:39 - 01:02:13
ошибочка и Сможешь там залоги её или что-то ещё сделать или обработать ответ например вот я Часто использую для обработки ответа Например у меня в коде где-то произошло там не знаю пти но не буду же я пятую возвращать клиенту я такой беру е ну вобще у меня как правило в таких непредвиденных обстоятельствах и например там не знаю Ну элементарный пример какой-нибудь я свой Каны создаю такого нет дего я свой создаю Трою его если сущность базе не найдена чтобы не показывать вот эту портя еов вскую какую-нибудь
01:01:38 - 01:03:00
суно неде не помню уж не суть вот чтобы N не показывать я просто-напросто беру entity exemption внутре него передаю Какая сущность это а потом вот в этом вот фильтре EX фильтре я проверяю какой тип пшена был вызван тронут и в зависимости от этого формирую ответ пользователю то есть с фильтрами удобнее работать ну удобнее чем с вами Да это некая такая М это что-то похожее на то что у тебя есть Вари это некий делегат Да ну Если сравнивать с делегатами У тебя есть фанки экшены это некий фильтр Ну то есть
01:02:19 - 01:03:51
какая-то упрощённая форма либо же там я не знаю когда с асинхронность работаешь У тебя есть треды У тебя есть таски Ну некое упрощение небольшие если можно таскать сахар сахар Айс потный вот Поня про фильтр прочитаю Очень удобная штука на сайте Microsoft достаточно подробно про них написано про каждый фильтр про кейсы использования это переживай так фильт СП нета так хорошо давай про аутентификацию авторизацию идентификацию давай вот с идентификации начнём что это такое дальше перейдём к аутентификации
01:03:07 - 01:04:34
авторизация так нет перво аутентификация идентификация первая потом аутентификация идентификация - это типа как мы узнаём кто это отправил так сказать Ну окей нормально аутентификация кто аутентификация это подтверди что ты это ты получается Ну смотри Да ты говоришь правильно просто не совсем конкретно мы пришли проводим идентификацию нам представили сказали что я петь потом проходим аутентификацию Пет показывает свой паспорт И подтверждает что он Пет дальше уже авторизация Ну авторизация - это уже
01:04:00 - 01:05:48
как выделение каких-либо прав для этого пользователя так сказать не только очень поверхно Томе в Я в одно время долго думал как провести элементарную аналогию и подумал что можно сравнить его например пришли мы в полицейский участок говорим Меня зовут Петя Да он говорит Окей Покажи свой паспорт ты показываешь свой паспорт Да ты Петя вот это ты с этим полицейским там он тебя спрат что ты хочеш гово заявление этот тебя дежурный какой-то ведёт к следователю и ты пишешь заявление Да этот следователь уже ничего
01:05:08 - 01:06:47
не проверяет потому что дежурный ему уже всё сказал То есть дежурный - это некий твой токен дежурный уже удостоверился что ты Петя что ты гражданин там не знаю РФ или Беларуси или Ну любой другой страны вот и ты имеешь право написать заявление То есть у тебя есть права ты точно Этот человек потому что у тебя есть токен то есть токен в качестве доверителя - это вот вот второй сотрудник которому ты представился и показал паспорт Вот то есть то именно авторизация - Это проверка того что ты в принципе да что-то можешь сделать И что
01:06:01 - 01:07:17
ты что ты уже подтвердил что ты являешься именно тем кем ты являешься то что ты прошёл аутентификацию и то что ты можешь делать какие-то операции Да что у тебя есть роли что у тебя Возможно есть какие-то права и прочее то есть ну авторизация Да ну то есть ты частично сказал поэтому по поводу того что мы проверяем роли но мы ещё должны удостовериться что ты действительно тот за кого себя выдаёшь то есть роль токена как раз заключается вот скорее в двух вещах что ты действительно он что ты что тот кто отправил этот
01:06:39 - 01:07:56
токен действительно тот кто аутентификатора О'кей а слышал что-нибудь про А 2 слышал но так точно наверное не скажу нечи Ну у меня было что И всё в принципе Извини ты немножко пропал Пропал Алло Алло Слышно да слышно да слышно А сильно Наверное я ничего и не скажу про А 2 это я понял Я про gvt я про а ну что который состоит из трёх частей получается у нас это получается точно Ой да тут я поплыл короче ну я помню Наверное первое адрес второе то что данные которые в м находится И третье - это ключ
01:07:17 - 01:09:02
часть Ну пока правильно только Да нет ничего неправильно Первое - это хедеры заголовки в них указывается алгоритм шифрования и прочее второе - это Бади тело с какими-то данными неважно это может быть там как идентификатор пользователя это может быть и Ну то есть когда будет просрочен этот токен ну и любые другие данные которые хочешь туда вставить и трее это ш с этих данных вот когда ты сказал Ключ это было близко но при помощи этого ключа просто высчитывается хэш то есть ключа в этом токене нет есть только хэш
01:08:57 - 01:10:22
результат данные в теле плюс алгоритм шифрования из хедера ну хеширование плюс ключ вот всё это вместе объединяется высчитывается хэш и хранится вот в третий сти нашего токена соответственно А в ЧМ преимущество для чего его используют делай выводы из того что плане для безопасности Ну почему GT Почему почему именно ится для безопасности Рандомные буквы цифры написать тоже безопас было бы нет но он же состоит из трх частей и если там какая-то одна Ну тре сечас Мне показалось что ты правильно начинаешь продолжай
01:09:39 - 01:11:35
дасть его очень сложно изменить потому что ОНТ из ДХ первых стей всё равно зависит и это ли Было бы очень сложно даже наверное ну очень близко идёшь очень близко не могу сформулировать Ну ты можешь прочитать данные в баде Ты можешь прочитать данные в хедере изменить ты их не можешь потому что у тебя хэш считается из Бади и из ключа некого которого нет в этом токене который есть только у того кто выдавал этот токен ну то есть если ты изменишь то он просто будет недействителен да то он будет подпись будет
01:10:48 - 01:12:17
недействительна Вот третья часть токена соответственно ты не сможешь подставить какие-то ложные данные но прочитать ты их сможешь открыто в этом есть преимущество gvt Окей хорошо давай немножко про технологии поговорим Хотя нет Давай закончим со сначала вот есть вот у нас ашки Да мы пишем часто а разные круд там и прочее да у нас есть такой термин как рест либо система является Что это значит Это значит что поно названию Как сказать метода в контроллере или в контроллере мы получаем одни и те же
01:11:36 - 01:13:17
результаты ты мне про очень грубо сформулировано ты мне пытаешься про идемпотентность рассказать Нет ну про правила restful так http методы идемпотентный этого не знаю Давай в принципе начнём с того что такое ство без правил Ну это наши получается запросы Get Post по delete Ну основные какие-то взаимодействия с с объектами Ну рест это вообще некая ой рест - это вообще некая парадигма некоторый набор правил которые применяется при реализации дпи Да вот хорошо что ты сказал по поводу поста хотел узнать пост является
01:12:34 - 01:14:22
идемпотентный Вот инно это писал вообще нет туда же мы можем разный вариант Нет я считаю алит алит как правило Мы же используем там дишни но в принципе же туда можно засунуть не только ID Хорошо давай вернёмся к тому что такое идемпотентность идемпотентный методы не так Я понял Ну это результат этого метода Мы всегда ожидаем один и тот же Ну скорее знаешь это либо это такие методы где либо вообще не изменяет состояние там в базе данных или в какой-то ещё в каком-то ещё месте где хранятся данные либо состояние
01:13:46 - 01:15:40
изменяется только единожды То есть ты первый раз изменил состояние а второй раз оно уже не изменится вот такие методы являются идемпотентный Исходя из этого определения Давай сделаем выводы Delete является идемпотентный или нет является Угу потому что мы один раз удалили а больше мы его не сможем удалить потому что он уже удалён логично Да это да получается и пост на создание если так Ну почему ты можешь со Смотри ты первый раз попробовал создать объект создал его Да сода тот же самый объект не можем
01:15:00 - 01:16:28
соть идом патентных методов не в том что можем мы создать что-то или не можем скорее Суть в том что мы отправляем один и тот же запрос а результат этого результат Либо мы Никакое состояние не изменяем Ну например Get метод Да не изменять состояние данных либо же мы изменяем единожды в случае с литом мы только один раз его удалим мы два раза один и тот же объект не удалим в случае с постом Мы например хотим создать что-то Да мы можем создать 100 раз хоть мы можем один и тот же метод пост вызвать 100 раз и будет создано 100
01:15:52 - 01:17:06
объектов то есть мы 100 раз из мы 100 раз Да они будут одинаковые Да если там будут ограничения на уникальность каких-то конкретных полей то понятное дело мы их не создадим Да ну как бы это частные случаи Да понял суть самово метода хорошо а ч вообще разница [музыка] между Давай я я хотел сказать между суп и рест Давай даже по-другому Ну да давай между супа рест Честно говоря мне вот прямо поверхностного будет достаточно слышал что-нибудь про суп слышал но блин наверное не отвечу даже так ре это это
01:16:29 - 01:17:57
xml мне этого будет достаточно понятное дело там дальше уже идут такие глобальные отличия виде Ну типа у реста есть вот эти вот методы Get пост прочее а у супа там чуть-чуть по-другому всё это устроено но не суть мне мне было бы достаточно услышать про X так хорошо давай от уйдём с ретом приходилось работать с ртом нет ангуляр больше как-то меня так подожди смотри Т - это брокер сообщений - [музыка] этон Ты наверное перепутал ребет срем да да нет я про фронт не спрашиваю я как бы сам там чуть больше
01:17:33 - 01:19:27
чем джун фронтовый поэтому я как бы не спрашиваю про фронт как правила понял Не с ретом не работал так хорошо может быть скакой работал вот с таким даже ещё пока не пробовал вроде Окей сейчас я запишу Ага кэш рование данных Мы это в принципе делали в проекте Давай по-другому В чём отличие ди Нет так не отвечу Ну один из ниди то есть отдельная нека аш просто в памяти ни приложение а Тошка нуни Окей хорошо Так что ещё из основного си в принципе пробовал что это такое или чего Ну я просто Либо сообщение в режиме онлайна вот можно
01:18:34 - 01:21:00
использовать сигнур я не очень понял что значит сообщение в режиме Ну типа мы изменили коллекцию в базе данных и мы хотим чтобы сразу же это было видно в нашей опиш например это можно использовать через сиг то есть база данных поддерживают Так что ты абстрактно что Ну смотри у тебя Ну ты частично правильно говоришь но как будто бы вообще не ту сигнала для чего бы я его использовал например вот ты правильно говоришь по поводу вот этого режима онлайн там что ты пытаешь сказать да вот например у нас есть чатик дали любой у
01:20:29 - 01:22:00
нас сервис есть с необходимостью отправлять уведомления пользователя вот на фронт Вы вводите вот эту плашечный свиека как правило нэн отправляет http запрос на Кэн энд возвращает ответ и соответственно фнн что-то отрисовывать Да но в ситуации когда фнн ещё ну он же не знает что на бке возможно какое-то изменение произошло например пришло сообщение и нужно отправить уведомление для этого нужно что сделать для этого нужно чтобы end отправил сообщение на БК и узнал а не появились ли сообщения если делать именно так что
01:21:33 - 01:22:51
постоянно опрашивает этот метод называется то есть какие-то длительные запросы длительное вытягивание данных То есть он у тебя постоянно полит полет пот Вот либо же есть второй вариант использование веб сокета при помощи Синара мы можем из бэнда вызвать метод фронтенда потому что там такой некий канал создаётся сокета сокетов и постоянно подключ Кэн грубо говоря если уть и вот когда ку надо уведомить что Пришло Уведомление на фронт то мы просто вызываем метод фронтовый через Си Ну либо через веб
01:22:19 - 01:23:49
сокеты через кеты Мы тоже можем этом сделать в принципе sign отчасти работает СБ сокетами там на самом деле всё чуть сложнее он ещё и н пон тоже поддерживает но чаще всего вот сигна используется для того чтобы с бэнда отправлять что-то на фронт вот ну типа свой отдельный мост по которому они так сказать взаимодействуют да да нельзя сказать что это именно кеты Потому что есть разные режимы работы короче Синара он может как и в режиме лон полинга работать просто это некий инструмент который позволяет нам делать
01:23:03 - 01:24:22
это в принципе Вот для этого использу есть очевидно подводные кам стабильность работы Синара в некоторых ситуациях в некоторых контекстах но опять же это как правило лучше чем просто м написать с кастом на свои веб сокеты вот так давай Наверное закругляться так побиту спросил про си спросил про Так что ещё можно узнать а про планировщики задач работал с какими-нибудь планировщика задач нет отдельно нет не работае ire квар Угу можно почитать попробовать Я так понял Я много чего ещё пропустил да такие базовые какие-то инструменты
01:23:43 - 01:25:32
которые очень много Где используется чуть ли не в каждом проекте практически крупном я бы не сказал что прямо везде Но вот какие-то планировщики задач часто используются некоторые сами их реализовывает некоторые используют готовые инструменты в виде кварца или нфера вот ребит тоже часто используется кэши тоже часто используется Ну то есть такие вещи которые во многих вакансиях ты можешь увидеть вот ну либо могут Просто спросить на собеседовании про них поэтому я и Уточняю приходилось с ними работать или нет какие-то такие тонкие
01:24:46 - 01:25:58
вещи Аля и прочее Я конечно не спрашиваю потому что пользовался Да это неинтересно потому что ну автома чем-то хорош чем-то плох кто-то его использует не использует кто-то Ярый вообще фанат кто-то наоборот Ярый противник поэтому я такие обычно вопросы Неда вот охо в принципе т вообще что можешь сам сказать как Ты ощущаешь себя после собеседования Ну в принципе потому что как бы знал или где-то около был вроде бы неплохо но много чего очень да Надо ещё хотя бы попробовать это надо Вот то что не знаю хорошо именно на практике
01:25:21 - 01:27:02
Давай тогда теперь я скажу с смотри В целом на самом деле достаточно неплохо Если ты будешь искать там др позиции Я думаю шансов найти какую-то позицию где Тебя возьмут прямо сейчас ну то есть шанс есть однако я бы всё-таки рекомендовал те моменты которые тебе скинул повторить изучить попробовать потыкать чтобы шансы резко увеличились на самом деле знаний для джуни разработчику у тебя достаточно достаточно для того чтобы на какие-то стартовые позиции устроиться Ну опять же Это же зависит от количества
01:26:19 - 01:27:29
кандидатов от того От качества кандидатов которые на это место придут Вот поэтому всё субъективно Поэтому в любом случае ты всё что я тебе скину Прочитай Изучи Потрогай потыкать то вполне неплохо понятное дело у меня ребята были и получше были сильно хуже Ну то есть не сказать что ты то есть явно чего-то не знаеш плохо что-то знаешь прям Да есть какие-то там пробелы в знаниях которые несложно вылечить не сложно закрыть знаниями Вот поэтому я бы не сказал что было плохо я думаю что ну нормально но опять же этого как правило
01:26:54 - 01:28:24
недоста этого как правило недостаточно потому что достаточно много джунов которые оплат на вакансии если тебя пригласят на собез Ты должен быть лучше всех их Поэтому лучше позаниматься вот я то что тебе скину всё-таки Изучи не А потом когда будешь проходить собеседование Записывай все те вопросы на которые затрудняло ответить Делай работу над ошибками Ну то есть вот в таком формате работай и однозначно у тебя получится если тебя будут хотя бы приглашать собеседовани у тебя будут высоки шансы пройти
01:27:42 - 01:29:00
его на хедхантере даже типа вообще везде отказы можно сказать практически Ну так и будет там один раз у джунов так и будет отправляй десятки сотни олай на десятки сотни вакансий К сожалению так и будет куча куча отказов Ну так к сожалению на рынке джунов устроено потому что на одно место там может быть 50 человек может быть 150 человек Поэтому у тебя будет много отказов но не стоит расстраиваться поэтому по этому поводу Ну у меня знаешь минус в том что у меня ж образование вообще не связанное с
01:28:21 - 01:29:54
ашкой Физкультурная так сказать сам в принципе не так давно вот я сейчас на курсах сижу по Там они такие Стак но решил записаться на курсы хоть хоче Какая бумажка была Ну да типа ну или может тоже помогут Ну жна могут чем-то помочь Да да поэтому давай закругляться не принципе больше нечего сказать Вот спасибо себе большое за возможность проверить свои навыки и посмотреть путь куда надо дальше идти вот это вот Наверно это самое понимать куда те идти за знаниями вообще на самом деле мне кажется на старте самое главное -
01:29:06 - 01:30:56
это писать побольше кода а для устройства на работу просто надо собеседовать Ну то есть понятное дело в идеале нужно покрыть всё что спрашивает на собеса но опять же нужен опыт собеседования чтобы проходить собеседование без этого сечас К сожалению Нино вот да и на все позиции что джунов на все позиции нужно уметь качественно пройти Собес чтобы подороже подороже продать себя так сказать или вообще в принципе продать себя как специалиста а учитывая что в каждой компании какие-то свои нюансы и они спрашивают прям под
01:30:02 - 01:31:30
своё это обширный пол вопросов да На самом деле я бы не сказал Ну то есть обычно знаешь как бывает обычно есть общий пул вопросов которые спрашивают большинство да есть какие-то Ну парочку вопросов задаст один работодатель парочку другой работодатель задаст Ну то есть а некоторые просто начинают углубляться в те аспекты программирования которые им интереснее всего которые им важнее всего то есть например если команда там работает над Я не знаю У них там есть какой-то искусственный интеллект или там
01:30:45 - 01:31:52
какой-нибудь какая-нибудь нейросеть которая определяет что-то Да тебе у тебя им важен там не знаю лоуд обработки отправки изображений да то они будут спрашивать могут задать вопросы по этому аспекту либо там не знаю у людей там большое количество данных хранится в базе данных Им будет интересно как ты справишься с оптимизацией базы данных Да И вот такие вот вещи То есть каждый просто будет делать упор на то что им действительно важно а вот эта базовая часть будет плюс-минус одинаковая поэтому тебе важно как
01:31:20 - 01:32:36
минимум закрыть базовую часть чтобы ты на базовые вопросы смог отвечать а дальше как повезёт то есть ко всем вопросам ты подготовишь у меня вот был вопрос по СПТУ типа что происходит между Вари и контроллерами Ну они хотели чтобы ты рассказал им по конвейер обработки запросов Ну последовательность на сайте Microsoft есть картиночка прям Я последнее время что-то не могу найти статью я нашёл только другую статью на сайте Microsoft там тоже показано Там они хотели чтобы ты рассказал им последовательность обработки
01:31:58 - 01:33:22
запросов вот и всё у меня вот году спрашивали по поводу шн фильтра Ну они точ спрашивали по-другому они спрашивали как выполнить что-то во время обработки запроса и после обработки запроса вот там просто есть Action ФТ который Action executing по-моему и он Action exec методы внутри этого э фильтра вот я про это не знал потом прочитал узнал как бы отлично но это уже на около позицию было Ну тогда как бы е не так сильно пря везде-везде популярен был это было 5 лет назад Вот поэтому люди ещё учились по
01:32:39 - 01:34:29
метани Ну там достаточно много информации вот ну сейчас ещё больше сейчас даже курсов куча есть пору книги есть пору тотже Адам Фриман популярен достаточно был коне которые делают по asnet кору Ну лучше наверное Адама Фримана я ничего не встречал именно по апнет кору он такой такой базовый базовый Planet Core то есть рассказывает про базовый iet Core немножко конечно нудно но в целом как бы Техническая литература должна быть нудной Как по мне то есть сухая такая больше сухая не то что нудно Тая вот всё тогда давайте закругляться
01:33:34 - 01:35:01
всем всем пока-пока Жень Тебе тоже пока-пока спасибо что пришёл пока-пока Спасибо что позвал
01:34:20 - 01:34:43