Самое полное интервью Golang Middle

  Рет қаралды 70,976

Эйч Навыки — менторская программа

Эйч Навыки — менторская программа

Күн бұрын

Оставить заявку на менторскую программу Эйч Навыки, чтобы перейти на Go, сменить работу, апнуть грейд или зарплату: t.me/skills_me...
Подробнее про Эйч Навыки: hcareers.notio...
Гофер-комьюнити: t.me/naviky_chat
Сервис развития карьеры Эйч: h.careers/?utm...

Пікірлер: 116
@hurricane-rus
@hurricane-rus Жыл бұрын
Респект кандидату (независимо от ответов) - 3 часа отвечать на вопросы это конечно хардкор...
@wskeal86
@wskeal86 2 жыл бұрын
Для общего понимания было бы хорошо пригласить стороннего сеньора с одной из известных компаний (незнакомого) и чтобы он прособеседовал собеседующего, и по го и по system design.
@СергейИванов-э8с
@СергейИванов-э8с Жыл бұрын
Перед этим нужно прочитать хотя документацию по БД, полное отсутствие проф терминологии
@igor5379
@igor5379 Жыл бұрын
для озона в этом нет необходимости )
@Никита-п1й8й
@Никита-п1й8й Ай бұрын
А сторонний синьер должен проверяться ещё одним сторонним синьером?
@wskeal86
@wskeal86 Ай бұрын
@@Никита-п1й8й да
@itcloudguy
@itcloudguy 2 жыл бұрын
Законспектировал почти всё словов в слово. Большое спасибо за это видео! Только не знаю как человек может выдержать 3 часа собеса. Это вынос мозга. Наверное вы так ещё проверяете психологическую стойкость человека.
@andreykyzn
@andreykyzn Жыл бұрын
Это кабздец. Я после 2ч уже овощ.
@MrFrimko
@MrFrimko Жыл бұрын
никогда не встречал собеседования дольше часа. даже в озоне они по часу)
@jellyfish6265
@jellyfish6265 10 ай бұрын
вряд ли поможет бессвязный диалог
@arenmkhoyan
@arenmkhoyan 7 ай бұрын
Супер контент, лучший
@СергейИванов-э8с
@СергейИванов-э8с Жыл бұрын
а для оживления worker controller нужен еще worker supercontroller , но если под не живой, то и это не поможет;-))) при выборке из БД в отдельном столбце ставим время последней выборки, если оно больше определенного предела, то отдаем еще раз, если запись необработана. все придумано до нас, аналогично работают многие очереди сообщений
@sovrinfo
@sovrinfo Жыл бұрын
Спасибо за видео. Коммент в поддержку!
@userunknown5860
@userunknown5860 2 жыл бұрын
Лайк) Очень крутое интервью, спасибо
@bn.liberte2370
@bn.liberte2370 2 жыл бұрын
3 часа ? это законно?
@NothingInterestingHereGuys
@NothingInterestingHereGuys 2 жыл бұрын
02:10:15-02:14:15 Raise conditions. Data raise - опечатка в тайминге. )
@Skills_mentor
@Skills_mentor 2 жыл бұрын
Пофиксили, спасибо, что обратили внимание
@АлмазИлалетдинов-м3х
@АлмазИлалетдинов-м3х 11 ай бұрын
Лайк за "Elegant objects" на полке)
@МихалПалыч-й8д
@МихалПалыч-й8д 2 жыл бұрын
Собес 3 часа подряд, это ужасно...
@misteranderson6058
@misteranderson6058 Жыл бұрын
Норм, время быстро пролетает
@phat80
@phat80 Жыл бұрын
У меня как-то был собес на 2,5 часа. Не в IT, но какая разница. Ничего, если ты с интервьюером на одной волне, все проходит легко и просто. Трудно, когда интервьюер хочет показать свою значимость и превосходство, вплоть до того, что чуть ли не унизить тебя. С таким тоже встречался и такое собеседование - это каторга даже на 40 минут. Когда был молод еще терпел, когда повзрослел, просто вставал и уходил. А с приятным человеком можно и 5 часов поговорить, не напрягает.
@denissokolov4029
@denissokolov4029 Жыл бұрын
У меня было 2 собеса в одну и ту же команду на стажёра разработчика. Первый собес длился 2:20 минут, второй начинался со слов "не всё у тебя спросил" и продлился ещё 2:40) Скажу что прям 3 часа подряд это правда очень тяжело
@tyapka
@tyapka 2 жыл бұрын
За System Design, инетрвьюемый, конечно, однозначно завалил, и интервьюер тоже. Это их решение с локом рядов в БД и релизом по таймаутам самое наивное и ненадежное. А если воркер просто дольше чем таймаут обрабатывает сообщение? Будет дубликат. Проблема конечно не простая, но есть пара более надежных решений. Первое это шардинг где каждый инстанс кластера отвечает только за свои сообщения (грубо говоря если 3 инстанса, то первый обрабатывает сообщения только начинающиеся с букв А до Й, тут я утрирую конечно, надо хэш использовать а не напрямую, и т.д.). У такого решения тоже куча минусов конечно, например пока сервер не перезапустится сообщения не будут обрабатываться, ну и с автоскейлингом траблы там, так как нужно чтоб количество серверов было фиксированным. Но по крайней мере можно гарантировать обработку только один раз. Второе покруче это использовать Rabbit MQ - сообщения кладутся не в постгрес а в локальный Rabbit MQ. Если воркер отвалится без акка сообщения, то оно сразу подберется другим ворекром. Для более сложных сценариев можно использовать etcd или zookeeper. Недостаток этого решения что нужно иметь Rabbit MQ / etc / zookeepr. Ну а вообще, exactly once это интервьюер загнул конечно. Я бы ему сразу сказал что он размечтался и добиться exactly once это практически нереально, поэтому надо выбирать в зависимости он нужд либо at least once (когда важно чтоб юзер точно получил), или at most once (какая-нибудь рекламная рассылка где непринципиально если одно сообщение потеряется), потому что всегда может быть ситуация когда сообщение пользователю ушло, но воркер отвалился до того как пометил его обработанным.
@maksimsergeevich5939
@maksimsergeevich5939 2 жыл бұрын
Интересно описал! Если не сложно, можешь написать в каких проектах приходилось самому столкнуться с этими моментами?
@tyapka
@tyapka 2 жыл бұрын
@@maksimsergeevich5939 Любой проект где есть асинхронная задача (в противовес обычному запрос - ответ), которая должна выполнятся исключительно в единственном экземпляре и надежно (то есть переживать рестарт или остановку серверов, и тут даже не вопрос в том что сервер может сломаться, здесь может быть простой деплоймент или даунскейлинг, такие вещи могу происходить несколько раз в день). Их решение в принципе работает, но это какой-то ненадежный велосипед, с кучей корнер кейсов которые они не учли, ну например а если работу нужно подбирать сразу после того как выполнявший ее сервер отвалился? В их решении работа не будет подобрана пока следующий цикл полинга не пройдет.
@СергейИванов-э8с
@СергейИванов-э8с 2 жыл бұрын
@@tyapka запись в БД должна быть идемпотентной, тк не погут никакие твои мульты-пульты на сервисах
@MAKKOV111
@MAKKOV111 2 жыл бұрын
Тоже бы сделал по другому, я бы предложил сделать writer (то что на видео нарисовано как Notifier) принимающим запросы синхронно, аля gateway. В таком случае там можно и валидацию сообщения сделать, и ограничить их поток (rate limitter и тому подобное), и прочее, и там уже положить в kafka / rabbit, на которую подписаны worker'ы. И не нужно этих select for update skip locked, механизм очередей эту задачу решает.
@Alexander-om7oj
@Alexander-om7oj Жыл бұрын
Респект за развёрнутый коммент. Многим поможет
@dimka00706
@dimka00706 11 ай бұрын
Есть вопрос про select case prioritization Есть 2 case, один из них done, который надо выполнять приоритетно. Если я пошлю что-то в done и закрою его, будет ли он приоретизирован?
@richardhelper167
@richardhelper167 Жыл бұрын
Касательно лика горутин: в случае приложения, которое не работает долго, утечка горутин не критична, так как рантайм возвращает используемую память ОС, I.e убивает все в конце работы приложения. Другое дело, если это какой-нибудь микросервис, который вертится в кубере +- постоянно.
@dimka00706
@dimka00706 11 ай бұрын
так и что делать, как дропнуть подвисшие горутины в контексте примера на 1:09:00 или какие есть варианты на Го?
@UnitedIngvar
@UnitedIngvar 10 ай бұрын
@@dimka00706 Тоже не могу понять, как это сделать
@dangbey4822
@dangbey4822 Жыл бұрын
спасибо за такой проект
@megasuperlexa2
@megasuperlexa2 Жыл бұрын
"быстрое развитие языка, введение дополнительных фич" - это точно про го?
@wskeal86
@wskeal86 2 жыл бұрын
По поводу 43:16 Это ошибка by design языка go. В Go FAQ на это есть ответ: "This behavior of the language, not defining a new variable for each iteration, may have been a mistake in retrospect. It may be addressed in a later version but, for compatibility, cannot change in Go version 1." Обходить можно так: var numbers []*int for _, value := range []int{10, 20, 30, 40} { v := value nums = append(numbers, &v) }
@finalename7464
@finalename7464 Жыл бұрын
Это очень правильный "mistake". Просто представь сколько памяти на стеке или даже в куче сожрал бы этот цикл, аллоцируй Go новую переменную для каждой итерации.
@wskeal86
@wskeal86 Жыл бұрын
@@finalename7464 дополнительно сожрал бы не больше, чем размер итерируемого массива. Не хочешь, чтобы выделялась память, итерируйся по индексу: for i := range numbers
@finalename7464
@finalename7464 Жыл бұрын
@@wskeal86 На самом деле больше, потому что это не массив, а значит не непрерывная память (будет выравнивание), плюс сам процесс аллокации каждой переменной в отдельности дорогой. Плюс сама такая аллокация гораздо чаще не нужна, чем нужна. Если тебе действительно надо такое поведение, напиши дополнительный код. А как поведение по-умолчанию это никак не подходит.
@wskeal86
@wskeal86 Жыл бұрын
Если размещать на стеке, то можно непрерывно разместить, итак все будет выравнено. Функция знает какой длины слайс в нее передается, а значит может на стеке выделить кол-во переменных равной длине слайса. По-умолчанию и не надо, достаточно чтобы как в примере из видео, если внутри цикла переменная по указателю передается куда-то, то компилятор должен это понимать и различать такие функции. Если ничего никуда не передается, то выделять память под каждую переменную не нужно.
@finalename7464
@finalename7464 Жыл бұрын
@@wskeal86 По сравнению с динамической памятью (кучей) стек весьма мал и размещая слишком много данных в стеке легко получить stack overflow. Компилятор должен понимать и есть поведение по-умолчанию. И нет, по-умолчанию такое поведение обычно неприемлемо.
@barmaglottt
@barmaglottt 8 ай бұрын
Парень на мидла вполне гуд... Некоторые вещи сеньорские или мидл + спрашивались, а учитывая 3 часа ... так совсем
@andreykyzn
@andreykyzn Жыл бұрын
Че-то Сергей в разработке нотификатора куда-то ушел не туда. Зачем вся эта нашлепка с базой. Есть же NACK в брокере .
@СергейГорустович-б9м
@СергейГорустович-б9м 2 жыл бұрын
Почему в разделе про индексы GIN засунули в геоиндексы, хотя он относится к полнотекстовым, а хэш представили как индекс для поиска неточных значений через LIKE, хотя он предназначен только для поиска точных значений? И сказали про то, что B-tree не умеет в LIKE %query?..
@AlexSpX-s
@AlexSpX-s Жыл бұрын
40т просмотров и 900 лайков. Б-благодарность
@TheCordelito
@TheCordelito 2 жыл бұрын
Тот самый момент когда увидел отсутствие вызова функции гораздо раньше интервьюированного
@paniciour
@paniciour Жыл бұрын
обалденный собес, саня крут
@СашаПлешаков-ы6х
@СашаПлешаков-ы6х 4 ай бұрын
На х2 кайф)
@vladimireliseev7602
@vladimireliseev7602 2 жыл бұрын
Было бы здорово, если бы на примеры, которые продемонстрировали, предоставили ссылочки. Что бы не приходилось красноглазить.
@Gusto20000
@Gusto20000 3 ай бұрын
Поиск по мапе не «единичка» а О(размер бакета)
@96kw3
@96kw3 2 жыл бұрын
в каких проектах и какие сервисы на нем востребованы ???
@TheDavBag
@TheDavBag 2 жыл бұрын
хз по поводу кафки на вход в SD секции. ну типа, зачем усложнение подобного плана если мы и так пишем стейт?
@АртёмГуртиков-х9ч
@АртёмГуртиков-х9ч Жыл бұрын
Bool это хоть и битик, но весит байтик т.к минимальная единица адресации байт.
@MrFrimko
@MrFrimko Жыл бұрын
быстрое введение новых фич в го? шо
@dmitriyobidin6049
@dmitriyobidin6049 Жыл бұрын
О боже, сколько вкладок...
@luckytima2315
@luckytima2315 2 жыл бұрын
Простите за глупый вопрос, реально вкатится в Го без комерческого опыта ?
@art3a
@art3a 2 жыл бұрын
Взял да сделал пару pet-projectов, пробуешься на джуна. Мне кажется как в любом другом языке
@luckytima2315
@luckytima2315 2 жыл бұрын
@@art3a спасибо )
@ЕвгенийГригорьев-ш9ц
@ЕвгенийГригорьев-ш9ц 2 жыл бұрын
Нуу!!! Гошка ?! - оччень простой язык- если вы раньше писали на плюсах /питоне /джаве - тут воообще говорить не очем - одного дня достаточно. Но это только - язык! Друго дело технологии - тут все намного сложней. Про коммерческий опыт - тут все интересно. Например проходишь собес = там тебе говорят "ну у нас тут все - круто - все по чистой архитектуре, все 12-ти факторно и Ci/Cd есть - все процессы налажены, тестирование - да!- все чин почину, реальность же показывает что в компании - расцвел зоосад буйным цветом и, так как вся команда работает по аджайлу, то есть "коммуникации важней документации", то никто не знает как "все тут устроено" -в итоге от тебя требуются недюжие коммуникативные навыки чтобы как-то что-то узнать, и софтскилы чтобы самому разобраться в коде. Да, вот еще - про Гошку, лично я - счастлив, что есть такой язык - на нем прогать - одно удовольствие, чего не скажешь о плюсах/джаве/шарпах.
@criss-cross
@criss-cross 2 жыл бұрын
@@ЕвгенийГригорьев-ш9ц " все по чистой архитектуре, все 12-ти факторно и Ci/Cd есть - все процессы налажены, тестирование - да!- все чин почину" - это про какую контору, если не секрет?
@ЕвгенийГригорьев-ш9ц
@ЕвгенийГригорьев-ш9ц 2 жыл бұрын
@@criss-cross Ну кстати сейчас ногие конторы - в частности Авито Озон ВК Сбермаркет = все они развивают платформу PaaS DDasS И так далее, но в отдельно взятой команде может встретится всякая дичь и, понимаете, тут все зависит от тимлида, если он реально сам прогает, занимается кодревью, - тогда в такой команде - все четенько, а если нет - то как правило кодовая база - зоосад
@megasuperlexa2
@megasuperlexa2 Жыл бұрын
1:07:18 что такое потоки на уровне процессора?
@verh010m2
@verh010m2 2 жыл бұрын
я чуть тапком в монитор не бросил на примере с указателями на 40 минуте... Ну что он так
@fellainthewagon7166
@fellainthewagon7166 2 жыл бұрын
Лол, первый раз такое слышу что RabbitMQ устарел
@ArtemAleksashkin
@ArtemAleksashkin 8 ай бұрын
все устарело, это специально, чтобы ты не расслаблялся.
@Erdaulet100
@Erdaulet100 Жыл бұрын
3 часа кажется слишком растянуто
@Arkham_nine
@Arkham_nine 2 жыл бұрын
> 01:12:22-01:16:40 Garbage collector see sharp SEE sharp 😅
@Skills_mentor
@Skills_mentor 2 жыл бұрын
Пофиксили, спасибо)
@MichailMishutkin
@MichailMishutkin 2 жыл бұрын
don't look, don't SEE 😉
@galaxycode2877
@galaxycode2877 2 жыл бұрын
Менторская программа работает? Я заполнил инфу телеграм-боте
@Skills_mentor
@Skills_mentor 2 жыл бұрын
Напишите нашему менеджеру: t.me/skills_mentoring, мы найдем ментора для вас и во всем разберёмся
@megasuperlexa2
@megasuperlexa2 Жыл бұрын
2:32:13 это у них Paxos?
@БББППП-ш4э
@БББППП-ш4э Жыл бұрын
вот очень интересны способы решения проблем на этом тайм коде kzbin.info/www/bejne/qKqtgIZjbc2gh9E *dataChan:= make(chan string)* go func() { dataChan
@Softovick
@Softovick Жыл бұрын
Вот что интересно, кто больше считается мидлом - как в этом интервью, в теории на словах все отлично рассказал и диалог поддержал, но когда начали кодинг, тут же на первой задаче проплыл и не смог объяснить. Или тот, кто теоретически не смог бы рассказать все это про особенности, но видя код , смог бы указать на проблемные участки, решить их и поправить по логике?
@MichailMishutkin
@MichailMishutkin 2 жыл бұрын
мне на trainee те же самые вопросы задают))) создаёте тренды, ахаха
@godevsol
@godevsol 2 жыл бұрын
Здравствуйте, как узнать расценки по менторской программе для студента?
@Skills_mentor
@Skills_mentor 2 жыл бұрын
Добрый вечер! Чтобы узнать стоимость занятия с ментором необходимо оставить в нашем боте: t.me/skills_mentee_bot заявку на менторство, заполнив форму, после этого менеджер свяжется с вами, предложив подходящих для вас менторов вместе с ценой за занятие.
@alexbork4250
@alexbork4250 3 ай бұрын
Писал на C# и стал писать на Go. Что вы вообще знаете о дауншифтинге?
@lonchit
@lonchit 3 ай бұрын
А что в этом плохого? Мне вот не нравится ни java, ни c#, на обеих языках писал.
@McDuckVision
@McDuckVision 2 жыл бұрын
хайп
@petery6775
@petery6775 Жыл бұрын
про потокобезопасность слайсов ничо не понял. помоему оба ничо не понимают))) поясните ктото простым языком что хотели спросить.. и как есть на самом деле ???
@sweetcapitan5690
@sweetcapitan5690 11 ай бұрын
Представьте ситуацию, когда у вас есть общая коробка яблок и два человека которые хотят взять по яблоку из него. У коробки есть дырка, в которую может пролезть только одна рука. Одновременно они взять по яблоку не могут, им приходится делать это по очереди, для этого же используются мьютексы. Почитайте про атомарность, мьютексы.
@ZaharMalinovskiy
@ZaharMalinovskiy 2 жыл бұрын
решение для задачи про утекшие горутины 1:10:34 play/p/vSyoIvTqxaB
@vadimalekseev3621
@vadimalekseev3621 2 жыл бұрын
каеф
@alikhanmurzayev4784
@alikhanmurzayev4784 2 жыл бұрын
21:27 вы хотите сказать, что sync.RWMutex + map будет быстрее, чем sync.Map? Напишите бенчмарки и убедитесь сами. Ну елки палки, вроде, сеньор собес проводит, и такие ошибки допускает…
@ЕвгенийГригорьев-ш9ц
@ЕвгенийГригорьев-ш9ц 2 жыл бұрын
Да какой он сеньор - просто пиарится! 5 лет всего в разработке 3- но гошке - О! - Сеньор !
@wskeal86
@wskeal86 2 жыл бұрын
@@ЕвгенийГригорьев-ш9ц а сколько лет коммерческого опыта в целом и в Go в частности нужно, чтобы по-вашему считаться true-синьором? 10 лет в общем и 5 лет в го это уже сеньор или еще миддл?
@ЕвгенийГригорьев-ш9ц
@ЕвгенийГригорьев-ш9ц 2 жыл бұрын
@@wskeal86 в целом верно - лет 10 опыта в разных компаниях - необязательно на ГО
@Vadyas
@Vadyas 2 жыл бұрын
А вы сами бенчи-то писали? sync.Map быстрее в случаях, когда у вас много чтений. Но даже при 99% чтений sync.Map может снизить перф, по сравнению с sync.RWMutex
@alikhanmurzayev4784
@alikhanmurzayev4784 2 жыл бұрын
@Влад Влад ну конечно писал, иначе не писал бы таких гневных комментариев😂 Этим всё сказано: The Map type is optimized for two common use cases: (1) when the entry for a given key is only ever written once but read many times, as in caches that only grow, or (2) when multiple goroutines read, write, and overwrite entries for disjoint sets of keys. In these two cases, use of a Map may significantly reduce lock contention compared to a Go map paired with a separate Mutex or RWMutex.
@petery6775
@petery6775 Жыл бұрын
мидл ваще не рубит в практике! чисто зазубрил теорию!
@Berkeli
@Berkeli 2 жыл бұрын
Как то так себе отвечал, а джюн и то не согласен с большинством ответов с обоснованными причинами
@raneddo
@raneddo 2 жыл бұрын
Про что ты конкретно говоришь? По итогу, всё +- верно, были проблемы, но на более сложных вопросах. Либо ты на самом деле не джун, либо ошибаешься
@nekitos3269
@nekitos3269 Жыл бұрын
пописать прерывались хоть?
@jellyfish6265
@jellyfish6265 10 ай бұрын
ужас, как же они разговаривают совершенного бессвязная речь у обоих не удивительно, что в приложениях все лагает
@finalename7464
@finalename7464 Жыл бұрын
Вы меня конечно простите, но в Go Сергей джун, а не мидл. Сергей, советую тебе пересмотреть своё интервью и постараться найти более чёткие и лаконичные ответы на вопросы. Мне показалось, что твоя основная слабость - это приблизительность или поверхносность знаний и поэтому ты плохо улавливаешь суть. Как только ты это исправишь, сможешь легко стать и мидлом и сеньйором. Ты вроде бы не глупый парень и я думаю, что у тебя получится.
@curtizzzby
@curtizzzby Жыл бұрын
нифига у него череп кривой
@jellyfish6265
@jellyfish6265 10 ай бұрын
тупое интервью, такого не бывает автор не может связать двух слов, все рассказывает сам, вопросов не задает, кандидат отвечает хреново
@gigabek
@gigabek Жыл бұрын
Бро уже поплыл после собеса. Да и я тоже.
Павел Дедищев - «Как кайф»
42:08
OUTSIDE STAND UP
Рет қаралды 594 М.
Открытое собеседование на Go-разработчика | Тренировочные интервью
1:08:08
Эйч Навыки — менторская программа
Рет қаралды 66 М.
Osman Kalyoncu Sonu Üzücü Saddest Videos Dream Engine 269 #shorts
00:26
Fake watermelon by Secret Vlog
00:16
Secret Vlog
Рет қаралды 28 МЛН
黑的奸计得逞 #古风
00:24
Black and white double fury
Рет қаралды 26 МЛН
Открытое собеседование на Go-разработчика | Анонс менторской программы
1:17:29
Эйч Навыки — менторская программа
Рет қаралды 30 М.
ТПРЗ практика початок вивчення Джави 17 10 2024
1:33:34
Desmistificando Macros - Josué Teodoro (j0suetm)
1:01:48
clojure-br
Рет қаралды 156
Открытое собеседование на Go-разработчика | Навыки
2:01:31
Эйч Навыки — менторская программа
Рет қаралды 36 М.
Mini Apps прошлое, будущие и перспективы в Telegram.
1:35:20
Подкаст Алексея Андреева
Рет қаралды 40