Открытое тестовое интервью на Go разработчика | Эйч Навыки

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

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

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

    00:00:00 - 00:01:23

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

    00:00:46 - 00:01:48

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

    00:01:17 - 00:02:27

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

    00:01:52 - 00:02:53

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

    00:02:23 - 00:03:38

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

    00:03:01 - 00:04:08

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

    00:03:34 - 00:04:44

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

    00:04:09 - 00:05:16

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

    00:04:42 - 00:05:46

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

    00:05:14 - 00:06:35

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

    00:05:55 - 00:06:55

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

    00:06:25 - 00:07:36

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

    00:07:01 - 00:08:02

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

    00:07:31 - 00:08:45

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

    00:08:07 - 00:09:24

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

    00:08:46 - 00:10:07

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

    00:09:33 - 00:10:49

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

    00:10:13 - 00:11:36

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

    00:10:54 - 00:12:15

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

    00:11:37 - 00:12:54

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

    00:12:15 - 00:13:52

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

    00:13:08 - 00:14:26

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

    00:13:46 - 00:14:58

  • значение указателя Да всё хорошо так с этим разобрались Давай небольшую задачку какы Все любят Поиздеваться давай вот небольшую посмотрим Я сейчас скопирую и тогда ты видимо пори экран [музыка] открою Надеюсь всем видно экран Так давай давай посмотрю на трансляцию Что там у нас она задер сейчас вроде выглядит что всё хорошо давай соответственно а ну Какая задача задача посмотреть в код сказать что тебе не нравится и рассказать что в итоге выведет Принт И что Ну что будет лежать S1 и S2 как что получится угу так Ну

    00:14:23 - 00:15:59

  • первое что мне не нравится это то что какое-то название переменной в альпи которое ни о чём вам не говорит Ну да т тут для примера такое а О'кей так Ну допустим чтобы какой-то предмет привязать допустим что банковский аккаунт ги Это количество денег в нём то есть мы создаём два аккаунта [музыка] а в Да мы создаём два а нет мы создаём массив аккаунтов размером ноль и Кати 2 да Да всё так вот получается первым мы присваиваем мы записываем пустой аккаунт потом в S2 мы присваиваем S1 ещё одного аккаунта тут вообще хорошо бы просто

    00:15:13 - 00:16:58

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

    00:16:11 - 00:17:42

  • Угу угу вот что происходит Дальше Дальше мы а переменный Як присваиваем указатель на нулевую ячейку S2 То есть это указатель на вот этот вот массив причём вот если мы посмотрим в S1 то там ВС ещё будет Лен о Поэтому если мы сделаем то он вот этот второй акаунт не вы по идее Да всё верно Да именно так то есть у на изн возвращается как раз струк турка с полями Вот здесь мы присваиваем соточку этому значению То есть у нас получается что в Вот вот вот этот вот массив И тут буде будет 100 всё ещё одна

    00:17:03 - 00:18:30

  • и та же область то есть в Здесь оно по идее должно вывести 100 и вот так да Абсолютно верно Так так и вы видите всё правильно всё так угу вот S2 мы сюда добавляем ещё один аккаунт и вот теперь у нас появляется новая область данных потому что за за капасити мы выходим и он лоцируется новый массив то есть здесь уже здесь как бы тоже будет но область памяти - Это уже другая у S1 потому что он по сути сейчас тут Лен допустим п4 ленд сейчас Угу а почему Н 2 а а это да это я начал вот ну и и комент надо поправить

    00:18:00 - 00:19:55

  • справа тогда если Угу Да вот да тут т тонкое место Угу Вот здесь мы добавляем 100 и здесь уже в S1 будет другой массив поэтому он выведет вот эту А здесь не три Ну да здесь пустота Да а вот здесь уже вот всё ещё С2 Ну ну этот ну всё ещё такой же С2 или что-то поменяется в нём всё-таки са 2 са 2 по идее не должен бы измениться Потому что тут создалась новая ласть памяти а двадцать четвёртая строчка а да вот Я простил Всё да перфектно Всё шикарно всё так и будет Да действительно вот всё разрулил соответственно это даёт мне там

    00:19:11 - 00:21:10

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

    00:20:16 - 00:21:56

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

    00:21:06 - 00:23:05

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

    00:22:20 - 00:23:45

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

    00:23:12 - 00:24:34

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

    00:23:52 - 00:25:22

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

    00:24:37 - 00:25:40

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

    00:25:10 - 00:26:20

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

    00:25:44 - 00:26:44

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

    00:26:15 - 00:27:42

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

    00:27:03 - 00:28:21

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

    00:27:46 - 00:28:56

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

    00:28:20 - 00:29:33

  • вот ну то есть вот если мы вопрос Давай так перефразирует я напишу два Фора с обходом мапы и буду принти ключи я получу два одинаковых порядка или нет Если это мапа Ну если ты имеешь в виду то есть два Фора Это например ну дважды протею просто по одной и той же мапе ин сделаю вот я получу одинаковую последовательность или нет это прямо с подвохом вопрос потому что кажется Гошка не Гошка не гарантирует этого порядка то есть хочется сказать прям вот хочется сказать что порядок одинаковый но вроде нет да

    00:29:00 - 00:30:22

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

    00:29:47 - 00:30:49

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

    00:30:20 - 00:31:43

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

    00:31:00 - 00:32:38

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

    00:31:54 - 00:33:09

  • используешь [музыка] их чтобы можно было подменять структуры например чтобы блин ну короче Например у меня есть единый интерфейс доступа к бш я делаю две структуры там которые ходят в постс и которые ходят в мон и чтобы их можно было безболезненно подменять я использую вот интерфейс Ага У тебя вот есть две бш Ну да Почему бы и нет ну как бы вот отличный там пример абстрагирование некоторого вот а ещё зачем вот все почему-то забывают там важней пустой интерфейс нет пустой Интерфейс - Это другое я вот Ну ещё Для чего

    00:32:36 - 00:33:50

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

    00:33:13 - 00:34:25

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

    00:33:49 - 00:35:09

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

    00:34:35 - 00:36:23

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

    00:36:09 - 00:37:26

  • Вот что выведет этот код Так у нас есть интерфейс во не произойдёт так есть интерфейс с функцией Full он этот [музыка] [музыка] имплементировать пото что пытается задеть А где она зает л почему Ну потому что здесь будет Нил Ну тут действительно л да да и Он попытается получить сам объект при попытке выполнить функцию он пойдёт в ссылку на объект А ссылка на объект у нас никакая е не поэтому происходит на самом деле не совсем Т Вот как раз хитрый пример потому что как видишь Вот тут я не знаю видишь выделяю или нет Что

    00:36:50 - 00:38:24

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

    00:38:09 - 00:39:21

  • используется То есть он нигде не обратится к Нилу Он нигде не заде референт его и на самом деле вот тут вот произойдёт Вполне себе Как ни странно вот вот это вот такая сложная штука А давай давай так а вот Помоги мне сломать этот код что вот как получить этот несчастный NP reference как его получить вот тут надо Ну если здесь сделать а по идее можно сделать вот так если вот тут убрать звездочку то как раз вот вот в этом случае произойдет ресивера и получится паника да именно так подробно зна Да ну то есть все знают прикол про

    00:38:48 - 00:40:19

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

    00:39:39 - 00:40:52

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

    00:40:15 - 00:41:28

  • рутины в стек другой рутины Ага Окей Сейчас небольшой Вопрос такой [музыка] не простой про общее развитие А почему вообще рутины могут друг у друга из тека читать это по-моему только как раз по-нормальному могут использовать только каналы потому что ранта Гош позволяет У меня только такой ответ найдётся вот ну вот просто вот простой пример вот у тебя допустим на компьютере запущен и ste запущены T у тебя читать что-нибудь из памяти которую Steam использует А ну нет это разные процессы рутина не процессы

    00:40:51 - 00:42:08

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

    00:41:32 - 00:42:40

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

    00:42:06 - 00:43:49

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

    00:43:02 - 00:44:24

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

    00:43:48 - 00:44:55

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

    00:44:22 - 00:45:41

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

    00:45:07 - 00:47:06

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

    00:46:21 - 00:47:46

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

    00:47:04 - 00:48:20

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

    00:47:46 - 00:49:33

  • свой на самом деле просто разделяем это просто ячейка памяти где ноль или один с определёнными правилами там а Томика А это зависит от реализации Но короче чтобы оно гарантировано было одна в одном адресном в адресном пространстве каждой горутины Угу такое для надёжности я на самом деле не проверял что будет ЕС делать так но мне кажется оно не будет корректно работать м так мап защитили это сделали в чат записали кса действительно не надо копировать но тут никаких проблем как бы не будет не надо референс там

    00:48:49 - 00:50:16

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

    00:49:36 - 00:51:12

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

    00:50:37 - 00:52:09

  • вот у окей окей окей супер Ну вроде там починили сейчас дайка ещё раз гляну так беглым взглядом значит мапу Обновили под ксом в канал записали Не заблокировались потому что буфер размера 10 канал инициализирован выдан сделали там в чате писали что хочу очень дефер можно и бы тут ничего плохого не прозой ждали когда все закончились как только все закончились Мы канал закрыли Да всё И теперь Давай перейдём к задачки сейчас я секундочку Свер со временем А времени у нас на самом деле не то чтобы очень сильно много мы начали где-то в

    00:51:24 - 00:52:57

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

    00:52:11 - 00:53:17

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

    00:52:44 - 00:53:47

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

    00:53:15 - 00:54:26

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

    00:53:51 - 00:55:02

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

    00:54:27 - 00:55:34

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

    00:55:02 - 00:56:29

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

    00:55:50 - 00:56:56

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

    00:56:23 - 00:57:37

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

    00:57:02 - 00:58:21

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

    00:57:42 - 00:59:11

  • если у нас есть каналы Я в ступор если честно вопрос Т поставил потому что дадада т та тут вот как раз вопрос чтобы немножко [музыка] выбить не знаю как каналам нормально защитить папку Я не вижу то что ты хочешь сказать что вот бы зачем Ну чтобы делать некоторую видимо некоторые ресурс эксклюзивным Ну да вот Ну вот Видимо это хочет сказать Вот а потому что на самом деле внутри каналов просто там мюк и прикручена вот а вообще а чего мы чего мы обычно защищаем там ютек сом Зачем ими пользоваться что вот их Для чего

    00:58:27 - 00:59:52

  • нужен вот как бы вот вопрос который всех тоже ставит в тупик Зачем нам что-то делать эксклюзивным я на самом деле очень люблю Как Какой пример приводили в университетах То есть даже весь код транслируется в аем там даже я не знаю а ра А П 1 оно же нифига не атомарная на самом деле и допустим у нас там два филиала банка между собой синхронизируются ЕС мы посмотрим надет загрузить ячейку что-то инкремент ячейку обратно загрузить в эту переменную А ну в регистр загрузить и если у нас всё это происходит в два

    00:59:19 - 01:00:42

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

    01:00:05 - 01:01:19

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

    01:00:46 - 01:01:59

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

    01:01:23 - 01:02:53

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

    01:02:10 - 01:03:21

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

    01:02:46 - 01:04:26

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

    01:03:36 - 01:04:56

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

    01:04:24 - 01:05:43

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

    01:05:06 - 01:06:26

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

    01:05:51 - 01:07:14

  • го R Go Вполне себе умеет создавать новые потоки Вот это можно там легко пронаблюдать если посидеть посмотреть на метрики и там по исполнять всякий код вот О'кей А давай поговорим про очереди давай вот вот ты говорил про какую-то глобальную очередь вот вообще что за очередь Как определяется Какие рутины исполняются как Ну как на потоке называются рутины Как работа организуется у нас вообще есть в Гош такая вроде штука Как G то есть аббревиатура типа что г - это сама рутина г это рутина М - это соответственно Это вроде поток А - это

    01:06:33 - 01:07:59

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

    01:07:23 - 01:09:03

  • берётся рутина колектора чтобы он всегда отрабатывал то есть такая гарантия от Гош много на самом де гзх хаков ответ-то услышать Просто вот как работает планировщик Да у тебя есть там типа очередь тасо и есть исполнители по идее Вот и вот у нас есть какая-то очередь по-хорошему Ну вот я и говорю Вот как Как определяется вот какую рутину исполнять просто потоки ходят в какую-то очередь там ну какую-то хитро организованную там не знаю по приоритетам или по чему-то или или вообще как выглядит вот стейт этого

    01:08:12 - 01:09:19

  • планировщика вроде там у каждого поток своя очередь что что бы рутины на каждом отдельном потоке исполнялись идёт то есть типа несколько по сути параллельных очередей Да У каждого потока Да во-первых ну типа что нужно говорить про Гош планировщик Это то что он шарит стейтон типа Т Local State у него у каждого есть вот да это там для перформанса сделано но есть и глобальная очередь про которую ты говорил вот а О'кей А вот давай ситуацию на Понимание Вот у какого-нибудь потока у него вот очередь пустая оказалась что

    01:08:50 - 01:09:55

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

    01:09:23 - 01:10:48

  • очень понял из глобальной очереди они раскидываю рандомно Поче это ещё отдельная рутина который из глобально врем от времени в локаль что-то там пихает так БН с этим плохо Ну окей О'кей Ладно понял На самом деле там нетривиальная Логика есть и есть Костыль который раз в несколько заходов в очередь и тред заставляет брать из глобальной там тоже какая-то Константа 61 или что-то такое вот заставляет брать из глобальной очереди А не своей локальной даже если она как бы не пустая вот это там тоже магический Хак про

    01:10:09 - 01:11:17

  • который они с города всё рассказывали Ладно мне там Меня Дима поправил что у нас есть время вот до 203 поэтому я Предлагаю перейти к последнему нашему блоку более такому весёлому и не связанному уже с гошко поговорим немножко с тобой про базы данных и распределён вот поговорим про базу данных и про распределён Ну так тоже верхами потому что времени у нас не очень много Я предлагаю представить вот сейчас в голове у нас сечас будет ментальная гимнастика с тобой а вот есть у нас с тобой представим сервис есть

    01:10:46 - 01:11:53

  • сервис стандартный Кай на Гош написанный у него какие-то ручки там Вот и у этого сервиса есть баска вот допустим пос всеми всеми любимый абсолютно Я надеюсь я люблю по Вот и у этого сервиса есть допустим два метода Get и там пост Ну то есть и Вот соответственно вот у нас этого сервиса есть нагрузка и мы стали Вот давай так Давай зайдём прям совсем издалека Как нам понять что наш сервис вообще ну корректно работает нормально отвечает пользователем и так далее Как нам за ним следить Вот какие Какими методами угу ну

    01:11:18 - 01:12:37

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

    01:11:59 - 01:12:57

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

    01:12:28 - 01:13:43

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

    01:13:06 - 01:14:21

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

    01:13:43 - 01:15:07

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

    01:14:25 - 01:15:38

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

    01:15:04 - 01:16:19

  • есть вот да это вот в том числе что я хотел услышать Да xplain А что такое xplain Но это команда сная которая там запрос разворачивает и более прям подробно расписывать Я если честно достаточно редко им пользуюсь Что значит разворачивает запрос типа вот у меня Селект звёздочка From Table вот что что она там разворачивает мне Ну нам покажет сколько выполнялся какой-нибудь под запрос сколько выполнялся Join то есть блин То есть он она просто подробно покажет тайминг не покажет сколько он выполнялся

    01:15:42 - 01:16:53

  • вот что показывает explain вот я хочу Слово услышать для понимания так окей ладно не будет я хотел услышать слово план запроса план вот реляционных базах данных есть Такая сущность вот как стадия вернее как планирование запроса Почему Потому что вот то что ты написал вариантов это исполнить Вот например с теми же джоми последовательными очень много для именно внутрянки базы данных и вот из множества способов исполнить запрос самый оптимальный вот expl показывает план А вот ещё не сказал слово есть expl Anal Вот вот то что ты

    01:16:17 - 01:17:40

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

    01:17:01 - 01:18:05

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

    01:17:35 - 01:19:03

  • B3 но он там более сбалансированы Да да да это всё даже семейство А у битри по-моему ещё два подвида я прямо точно не у три Ладно а бит Ну по названию там Понятно Чем отличается зачем зачем например хш Индекс нужен Ну ш быстрее по факту то Ну почему быстрее потому что в B3 N logn ой Log N в хш от этого ну там алгоритмически безупречно но там в базах данных больше не алгоритмы ляют А уже работа с дисками Шами и так далее на самом деле у хэш индексов он там он может быть быстрее но у него есть ещё

    01:18:19 - 01:19:43

  • там хорошая фича с тем что А я предполагаю Может потому что мы сразу получаем адрес и сразу знаем куда идти а три нам нужно ещё пройтись по этому дереву из-за этого ну там надо пройтись Но ты же тоже в итоге адрес получаешь вот индекса там ещё и свойство что он мало весит он меньше весит И там ты типа ни на самом деле хэш вот от больших ключей например и он там может лучше влезать в память О'кей Ладно не будем углубляться там в детали реализации индексов там в их нюансы с кэширования и так далее

    01:19:03 - 01:20:12

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

    01:19:37 - 01:20:46

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

    01:20:12 - 01:21:34

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

    01:20:54 - 01:22:21

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

    01:21:37 - 01:22:56

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

    01:22:17 - 01:23:59

  • происходит у меня такого к счастью никогда не происходило может происходило Ты может об этом не знаешь там админы страдали за тебя Ты даже не знаешь их имён как бы с админами кстати знакомы у нас команда Хорошо знакома так вот но так вот что если вот было допустим да примем за данность вот так природой заведено а что А можно писать только в Мастер допустим вот был у нас Мастер и он сдох вот у нас сгорел сервак физический вот что дальше остались реплики сиротливые Как нам жить Я предположу что там одна становится снова То есть там

    01:23:13 - 01:24:23

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

    01:23:49 - 01:25:17

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

    01:24:36 - 01:25:46

  • какую-нибудь там каку Ну а если нам надо ТТ соблюдать вот прямо у нас жёстко надо там девяносто девятый квантиль там держать какой-нибудь лютый 200 миллисекунд Как нам Пошта биро нашу систему маленькую Я вот уже я уже подсказал как может просто Ну я не знаю поднять второй микросервис Не ну микро Ну типа сервис-то у нас Мы можем их там 500 поднять Вот ты го слово шардирование А ты про это Я думал Всё я думал ты его сказал типа что мы его уже не тро это я тебе подсказку как раз давал да да вот шарди

    01:25:22 - 01:26:42

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

    01:26:06 - 01:27:15

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

    01:26:41 - 01:27:51

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

    01:27:16 - 01:28:31

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

    01:28:10 - 01:29:14

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

    01:28:44 - 01:29:50

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

    01:29:21 - 01:30:30

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

    01:29:55 - 01:31:04

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

    01:30:39 - 01:31:57

  • которого кстати его даже с большой вероятностью приведёт Вова Если вы придёте в Наш замечательный продукт и в целом это тот слайд который я уже проговорил когда учишься и готовишься только сам и тебе нужно совершить какой-то быстрый В общем Большой скачок то есть не знаю с PHP или другого языка перейти на го апнуться в грейди либо в целом просто найти какую-то первую Гош ную работу то вообще возникает много сложностей непонятно что конкретно Мне нужно знать Какие являются обязательные знания А какие не являются Не знаю нужно

    01:31:19 - 01:32:34

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

    01:31:56 - 01:33:03

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

    01:32:29 - 01:33:33

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

    01:33:01 - 01:34:12

  • Авито все ребята делали какие-то видосы на нашем канале но в целом помимо них есть ещё 25 гофер которые являются сеньор либо Лид уровня и которые вам помогут и подскажут соответственно после Соса мы даём гигантский фидбек он будет в разрезе п8 тем то есть мы не просто говорим типа ты дн а ты midle А мы говорим тын или midle и Вот потому что у тебя вот эти темы развиты Вот так и если ты кач вот эти темы до следующего уровня то у тебя весь грейд соответственно ап В общем лучше один раз увидеть Чем 100 млн

    01:33:36 - 01:34:47

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

    01:34:12 - 01:35:26

  • чуть глубже и после этого следует такая гигантская табличка в этой табличке В общем есть 58 строк То есть это на самом деле демоверсия здесь их всего 11 в настоящем фидбекер вы получаете когда к нам Приходите их будет без малого в пять раз больше даже чуть больше чем в пять раз больше в общем 58 скилов и в каждом скиле будет отметка э зелёным Это значит что у вас текущий уровень находится по этой технологии находится вот в этом диапазоне например вот стандартных типах я сеньор В слайса Я midle в мапа Я midle в структурах я

    01:34:48 - 01:36:01

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

    01:35:26 - 01:36:27

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

    01:35:56 - 01:37:02

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

    01:36:30 - 01:37:36

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

    01:37:03 - 01:38:28

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

    01:38:02 - 01:39:16

  • сам туда входит абсолютно всё что я только что проговорил кроме занятий с ментором Но их можно будет потом докупить отдельно и в помощи ментора входит всё тоже самое что и в первый тариф но ещё помимо этого туда включены пять звонков с ментора один на один которые вы можете потратить либо на МОК интервью дополнительные либо на помощь с какими-то материалами которые будут встречаться по ходу а в общем этого э продукта И по ходу вашего пути а в общем короче супер крутая штука и всем кто сегодня то есть 11 января

    01:38:39 - 01:39:57

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

    01:39:17 - 01:40:29

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

    01:39:54 - 01:41:07

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

    01:40:37 - 01:41:48

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

    01:41:13 - 01:42:30

  • заполнял чел из pog Pro это человек который про pog знает абсолютно всё И там есть ссылки на очень-очень крутые материалы реально без всяких Я не знаю у Паши и у Вовы есть доступ Я не знаю глядели ли вы но я глядел и там Ультра короче круто Я пока не глядел но я знаю что за чувак заполнял и там действительно Я думаю что там всё хорошо должно быть вот надо кстати будет проче Кать интересно да Там просто там очень круто Я бы я хотел с материться но остановил себя Ну там короче очень круто а да больше вопросов нет по продукту Ну

    01:42:00 - 01:43:16

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

    01:42:38 - 01:43:55

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

    01:43:20 - 01:44:38

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

    01:44:05 - 01:45:21

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

    01:44:47 - 01:46:01

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

    01:45:25 - 01:46:48

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

    01:46:07 - 01:47:28

  • действительно перейти теперь к фид так О'кей Давайте по фидбек А так честно говоря я ну как бы на таком реальном собесе я там сразу же себе делаю пометки там в табличку Всё записываю тут я так не делал но по свежей памяти значит о чём мы успели поговорить мы поговорили Про некоторые там Там основы го про стандартные контейнеры вот со слайсов всё было замечательно А Паша всё развалил просто кабины всем вот с интерфейсами неплохо пообщались и В общем с базовой частью го мы поговорили достаточно конструктивно и

    01:46:47 - 01:48:04

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

    01:47:25 - 01:48:44

  • картины там глубокого понимания Вот но опять-таки собеседование на Мидл разработчика поэтому там досконально рассказывать о том Там как Какие дизайны Какие идеи Диза как целиком работает весь в наверно не нужно то есть тут скорее Окей тоже опять-таки прон поговорили замечательные слово и про то что Local ST у Лера Тоже замечательно упомянули Вот достаточно вот немножко мы признался честно что сильно много не ходил не кишки с ними внутрянку не ковырял не работал вот с теори распределён тоже видно что немножко не хватает

    01:48:09 - 01:49:37

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

    01:49:02 - 01:50:19

  • мало пря да то есть это это больше ощущалось не как собе на работу А как именно такой тестик просто вот но в целом Слушай очень полезно то есть про Мне казалось например что я достаточно хорошо понимаю как устроен планировщик но когда-то мне попросили это рассказать Я понял что я не могу это рассказать вот он такой обман Вот то есть такоев репрезентативный объём того что надо подтянуть Я получил это круто Ну да вот как-то так вот с планировщиком как бы есть люди любители сильно там в него вдаваться поговорить

    01:49:49 - 01:51:17

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

    01:50:38 - 01:51:46

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

    01:51:12 - 01:52:27

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

    01:51:50 - 01:53:06

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

    01:52:38 - 01:54:04

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

    01:53:25 - 01:54:29

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

    01:54:09 - 01:55:20

  • там типа Понятно дали данные для фронтенда а технические бендерский команды это инфраструктурные команды это да там там свой Шарм Вот я как человек который всю жизнь проработал в инфраструктурных по сути командах вот я да Да это отдельный такой сорт развлечений да да да блин как-то 58 Человек сидит и не задаёт вопросов а мы просто сидим и говорим вроде по всё повели ну уже подкаст такой ну же да да да но у нас каждый эфир под конец такой в подкаст превращается [музыка] а вопрос Нужно ли медлу знать паттерны

    01:54:44 - 01:56:12

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

    01:55:28 - 01:56:38

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

    01:56:03 - 01:57:02

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

    01:56:32 - 01:57:41

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

    01:57:07 - 01:58:39

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

    01:57:56 - 01:59:10

  • работал с concurrency если это а база данных то это человек который работает в postgres Pro если это в общем System Design и всякие такие около вещи то это Вова вот а Короче все всё что там собрано это супер круто и Супер классно Поэтому просто перейдите посмотрите там очень круто вопрос кстати за это время появился пока я описывал все замечательные преимущества нашего продукта вопрос насколько глубоко нужно знать кубер медлу Хороший вопрос Я бы сказал Так что наверно про собеседуем отдельный мир в кубе можно

    01:58:33 - 02:00:07

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

    01:59:29 - 02:00:43

  • вот как старый Жигуль чтобы оно завелось и не более вот а вот как бы хороший продакшн кубер - это по-хорошему а работа Ну совершенно других специальных людей и Когда разработчики пытаются погонять uber Ну там именно какой-то такой нетривиальный Это обычно очень больно плохо и Ничего из этого не получается Поэтому хорошо знать как бы зачем и как А вот детали я бы не не вдавайся Если вы не срш нек супер ээ я вообще слышал на самом деле что люди которые умеют что люди которые умеют разворачивать у нас был

    02:00:17 - 02:01:21

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

    02:00:51 - 02:02:01

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

    02:01:27 - 02:02:57

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

    02:02:15 - 02:03:29

  • вечера Всем пока Всем [музыка] пока

    02:02:51 - 02:03:04

Менторы

Специалисты своей области, которые смогут помочь вам

  • Нигма Нурия
    Нигма Нурия

    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

© 2024 HireGuru. Сделано в Санкт-Петербурге с hireguru.ru