Mock-собеседование по Go от Старшего разработчика из Авито

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 ส.ค. 2024

ความคิดเห็น • 83

  • @Barrrash
    @Barrrash 6 หลายเดือนก่อน +8

    Отлично для интервью на 50 минут!
    + Сразу дал расклад, что будет на интервью.
    + Дружелюбно.
    + Заинтересовал кандидата, пояснил особенности решения и поведения среды
    + Запросил фидбэк
    + Дал фидбэк
    - Не выделил время для вопросов от кандидата.
    *Если расширить интервью на 10-15 минут, то можно ещё по софт-скилам пройти.
    Заметно лучше, чем первое интервью на канале (см. коммент там).

    • @olezhek28go
      @olezhek28go 6 หลายเดือนก่อน +1

      Я привык, что для софтов отдельная секция собеса есть, чтоб основательно поговорить об этом:) а так, спасибо за фидбек)

  • @olezhek28go
    @olezhek28go 6 หลายเดือนก่อน +25

    Вай, какой красавчик в кепке😂

    • @chesscat553
      @chesscat553 6 หลายเดือนก่อน +1

      Марти Макфлай из 1985 года.

    • @user-qp3lt4ps8c
      @user-qp3lt4ps8c 5 หลายเดือนก่อน +2

      А какой у него кот)

    • @olezhek28go
      @olezhek28go 5 หลายเดือนก่อน

      @@user-qp3lt4ps8c дааа)

  • @mchekalov
    @mchekalov 6 หลายเดือนก่อน +6

    Шемистан крут, мне до такого уровня пока рости.

  • @calculaction
    @calculaction 5 หลายเดือนก่อน +3

    Полезно! Жду ещё!
    пс: на опечатки время я бы не тратил и на кучу лишних слов о кружках и к!отиках (имхо)^^

    • @murad_shafii
      @murad_shafii 4 หลายเดือนก่อน

      поддерживаю

  • @user-nl7fw3yp8p
    @user-nl7fw3yp8p 4 หลายเดือนก่อน +3

    так сосредоточились на очепятках, что забыли вызвать анонимную горутину в конце)

    • @olezhek28go
      @olezhek28go หลายเดือนก่อน

      даа, есть такое)

  • @yami_curr
    @yami_curr 2 หลายเดือนก่อน +3

    12:20 я так и не понял, как у вас а2 и а3 тут получаются разными. Я проверил сам и а2 и а3 должны выходят одинаковыми с cap = 6

  • @JIexaPol
    @JIexaPol 6 หลายเดือนก่อน +8

    В последней задаче при срабатывании ctx.Done мы получаем утечку горутин, так как после этого запись в канал ch заблокирует горутину на 91 строчке. Разве нет?
    Горутина, которая захочет записать результат в канал ch, уже не сможет этого сделать, если основная функция уже прочитала ctx.Done и завершилась и больше не читает ch.

    • @olezhek28go
      @olezhek28go 6 หลายเดือนก่อน

      Речь идёт о ситуации, когда отмена контекста происходит одновременно с записью в канал?)

    • @JIexaPol
      @JIexaPol 6 หลายเดือนก่อน

      @@olezhek28go нет, я про ситуацию, когда getDiscountWithContext завершился, поймав закрытие канала ctx.Done, и больше никто не читает канал ch, а горутина, вызвавшая getDiscount позже попытается записать туда значение.

    • @JIexaPol
      @JIexaPol 6 หลายเดือนก่อน

      @@olezhek28go нет, я про то, что функция, которая пишет в канал ch, может никогда не завершится, если мы отвалились по таймауту. Ведь читателя у канала не будет, когда придет результат от getDiscount()

    • @user-tm5sp3qw7g
      @user-tm5sp3qw7g 6 หลายเดือนก่อน +3

      @@olezhek28go тут скорее про то, что в случае таймаута мы в select попадаем в блок с ctx.Done(), возвращаем результат и из канала ch уже никто не читает, соответственно горутина с записью в такой канал будет вечно ждать, пока из канала кто-то прочитает (а уже никто не прочитает). если бы канал был с буфером, таких проблем бы можно было избежать)

    • @olezhek28go
      @olezhek28go 6 หลายเดือนก่อน

      @@user-tm5sp3qw7g а понял) согласен) тут стоит ещё подумать о закрытии канала

  • @millerov
    @millerov 6 หลายเดือนก่อน +4

    Если я не ошибаюсь, в последней задаче, при выходе из функции по таймауту, горутина останется висеть и ждать завершения запроса, тратить ресурсы:) Я бы просто повесил тайм-аут на реквест без каналов и кейсов. Было бы и проще и правильнее

    • @pav5000
      @pav5000 6 หลายเดือนก่อน

      Это в реальном мире, но по условию задачи было запрещено что-то менять в функции, которая запрос выполняет.

    • @olezhek28go
      @olezhek28go 6 หลายเดือนก่อน

      справедливое замечание) Однако, есть пару нюансов. 1- мы не контролируем вызываемую сторону и не факт, что таймаут будет там обработан. 2 - в такой шустрый формат интервью сложно уложить продумывание всего) В целом можно в комментах поразмышлять как ещё можно докрутить код)

    • @user-qd7wb2ti5j
      @user-qd7wb2ti5j 4 หลายเดือนก่อน

      @@pav5000 Странное условие, как по мне. http запрос всегда можем сделать с таймаутом или контекстом. Если прям нужно подобное решение, то пример следует подобрать по удачнее.

  • @user-qp3lt4ps8c
    @user-qp3lt4ps8c 5 หลายเดือนก่อน +1

    Олег, выздоравливай!

    • @olezhek28go
      @olezhek28go 5 หลายเดือนก่อน

      спасибо)

  • @luckytima2315
    @luckytima2315 5 หลายเดือนก่อน +2

    Братик ты как всегда выглядишь как булочка сладкая :p

    • @olezhek28go
      @olezhek28go 5 หลายเดือนก่อน

      ахаха) пирожок)

  • @user-nl7fw3yp8p
    @user-nl7fw3yp8p 6 หลายเดือนก่อน +3

    для третьей задачи теперь нужно всегда спрашивать, какая версия go :)

    • @nonesnonoperos9504
      @nonesnonoperos9504 5 หลายเดือนก่อน

      Да, для 1.22 есть нюансики как говорится)

    • @olezhek28go
      @olezhek28go หลายเดือนก่อน

      всё верно)

  • @megauspexx
    @megauspexx 6 หลายเดือนก่อน +5

    Запустите код из первой задачи, вторая часть решена неправильно

    • @artemkas4191
      @artemkas4191 2 หลายเดือนก่อน +1

      В этом и весь прикол, слайсы в go настолько через задницу спроектированы, что заранее не знаешь, где может выстрелить, поведение у них абсолютно непредсказуемое

    • @user-hd8cz6xp5s
      @user-hd8cz6xp5s 9 วันที่ผ่านมา

      @@artemkas4191надо просто в кишочках покопаться)

  • @user-nl7fw3yp8p
    @user-nl7fw3yp8p 6 หลายเดือนก่อน +7

    рассуждал так же в первой задаче, когда убрали третий аргумент из make, но оказалось, что это не работает при именно 5 элементах, потому что он создаётся с capacity=6. Если их 4 или 6, то capacity будет 4 и 6 соответственно. Если их 7, то cap=8, 14-14, 15-16

    • @Dmitry-ug1zq
      @Dmitry-ug1zq 5 หลายเดือนก่อน

      Не все так просто, если бы было 3 элемента при добавлении, то тогда бы так и сработало, cap/len были бы по 3)

  • @kafychannel
    @kafychannel 6 หลายเดือนก่อน +1

    Great interview, thx !

  • @maratbaisultan6915
    @maratbaisultan6915 15 วันที่ผ่านมา

    18:35 челик инициализирует структуру с приватным полем лол

  • @shamistanaliyev5678
    @shamistanaliyev5678 6 หลายเดือนก่อน +2

    Шамистаны в общем то крутые))

    • @olezhek28go
      @olezhek28go 6 หลายเดือนก่อน

      😂однозначно

    • @shemistan11
      @shemistan11 6 หลายเดือนก่อน

      Согласен😁

    • @shamistanaliyev5678
      @shamistanaliyev5678 6 หลายเดือนก่อน

      @@olezhek28go ты мне как то в линкедыне писал, что твоего близкого друга зовут также как и меня, Шамистан Алиев, я сначала не поверил, но теперь я точно знаю, что это правда 😂😂

    • @olezhek28go
      @olezhek28go 6 หลายเดือนก่อน

      @@shamistanaliyev5678 да, точно:)

  • @Elijah-xe2he
    @Elijah-xe2he 13 วันที่ผ่านมา

    Я не GOшник, но во 2 задаче кандидат упомянул, что под переменные для if/for выделяются отдельные области памяти и эта память живёт только в блоке if/for. Раз мы в second кладем ссылки на v и после цикла область памяти для v умрёт, откуда тогда в println возьмутся значения?

  • @savvinovan
    @savvinovan 6 หลายเดือนก่อน +2

    ох, я бы сам все это решил, они вообще нихрена не понимают

    • @olezhek28go
      @olezhek28go 6 หลายเดือนก่อน

      😂сто пудов

  • @yushkinelizar1280
    @yushkinelizar1280 6 หลายเดือนก่อน +2

    Невызванная горутина в ласт задаче
    *🫤*

    • @olezhek28go
      @olezhek28go 6 หลายเดือนก่อน

      Эх, ускользнуло от взгляда

  • @mikemerinoff
    @mikemerinoff 6 หลายเดือนก่อน

    - Найди опечатку в своем коде
    * засаживает еще две опечатки, пока искал *

    • @olezhek28go
      @olezhek28go 6 หลายเดือนก่อน

      случается)

    • @user-zm7bk8ri3y
      @user-zm7bk8ri3y 3 หลายเดือนก่อน

      без очепаток никуда

    • @artemkas4191
      @artemkas4191 2 หลายเดือนก่อน

      Классика - исправил 1 баг, получил 10 новых багов😂

  • @Artem.Alalykin
    @Artem.Alalykin 5 หลายเดือนก่อน +1

    Так, Олег... Кажется, у тебя был ранее канал несколько другой тематики. Мне ведь не кажется? :-)

    • @olezhek28go
      @olezhek28go 5 หลายเดือนก่อน

      всё верно)

  • @evg1605
    @evg1605 6 หลายเดือนก่อน

    в последней задаче - канал создать с емкостью 1 нужно - иначе горутинка утечет ))) понятно что если случай с main то все равно все завершиться, но все же...
    88 строчка

    • @EvgeniiSuvorov
      @EvgeniiSuvorov 5 หลายเดือนก่อน

      и как это прервет горутину?

    • @evg1605
      @evg1605 5 หลายเดือนก่อน +1

      @@EvgeniiSuvorov не прервет, а гарантировано даст записать в канал и завершиться…

  • @user-cs3db6ct2o
    @user-cs3db6ct2o 4 หลายเดือนก่อน

    Я б обернул select в for, потому что вместо долгого ответа получили ошибку отмены таймаута. Как была низкой стабильность метода, так и осталась.

    • @lauhG3
      @lauhG3 3 หลายเดือนก่อน

      зачем? ты в селекте ждешь канал который быстрее сработает. Там нету смысла обрабатывать другой код в этот момент

  • @notfust
    @notfust หลายเดือนก่อน

    Почему в задаче на замыкания при выводе будут обращаться к памяти b102? Что происходит с памятью, когда программа выходит из ее области видимости? Понятно, что сама физическая память никуда не исчезнет, и second как ссылалась, так и будет ссылаться на эту ячейку, пока новое значение не присвоят. Но разве нет такого, что если память была очищена, то в результате ссылаться будет не на что, она будет помечена, как нулевой указатель. Или она все-таки будет доставать мусор, который лежит по этому адресу?

    • @olezhek28go
      @olezhek28go หลายเดือนก่อน

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

  • @user-xt2jl1gs8i
    @user-xt2jl1gs8i 6 หลายเดือนก่อน +1

    А разве горутина не продолжит висеть в последней задаче?

    • @JIexaPol
      @JIexaPol 6 หลายเดือนก่อน +1

      продолжит

  • @user-zl1zv9wi3m
    @user-zl1zv9wi3m 4 หลายเดือนก่อน

    Вопрос к Авито.
    А что у вас за разработчики такие, что доказывают мне, что при передаче ссылки на структуру в метод, на новый стектрейс помимо передачи ссылки происходит еще и копирование на куче!
    Был у вас на собеседовании (N этапов) и на кодинге после такого не знал что ответить. А позиция у человека была далеко не старший =)

  • @mchekalov
    @mchekalov 6 หลายเดือนก่อน +1

    А где традиционное, в одной из задач ошибка, найдите ее?

    • @olezhek28go
      @olezhek28go 6 หลายเดือนก่อน

      На все время не хватило, но если есть варианты кидай сюда:)

    • @Varkatel
      @Varkatel 6 หลายเดือนก่อน

      ошибка, что константу внизу переименовал, а вверху не

    • @olezhek28go
      @olezhek28go 6 หลายเดือนก่อน +1

      @@Varkatel ага и ещё лучше, чтоб там была в одном месте русская с, а в другом английская)

  • @user-yl1nt9jf8b
    @user-yl1nt9jf8b 6 หลายเดือนก่อน

    Можете еще mock-собеседование было на языке Java

  • @Kotl1n
    @Kotl1n 6 หลายเดือนก่อน

    А на должность SRE/Devops в avito алгоритмы спрашивают?

    • @shemistan11
      @shemistan11 6 หลายเดือนก่อน

      Именно алгоритмы вроде нет, но это не точно)

    • @olezhek28go
      @olezhek28go หลายเดือนก่อน

      смотря где, думаю)

  • @artartov2018
    @artartov2018 5 หลายเดือนก่อน +1

    2 дкнь изучаю Го, изи решил все задачи! )))

    • @IvanFedulov
      @IvanFedulov หลายเดือนก่อน

      пиздишь😅

    • @olezhek28go
      @olezhek28go หลายเดือนก่อน

      красава)

  • @user-ln2ft2mo3c
    @user-ln2ft2mo3c 6 หลายเดือนก่อน +4

    Красавчик к кепке!, во первых задачи - полное фУфлЕ, во-вторых если ты картавый щупленький малыш как на картинке, то ты вызвал у меня чувство недоумения и сострадания, в третьих твои придирки к опечаткам выдают в тебе чувство собственной неуверенности

    • @olezhek28go
      @olezhek28go 6 หลายเดือนก่อน

      Так все так, я забитый маменькин сынок и вылез в интернет, чтобы раздражать таких как ты:) Выходит на собес или зассал?😂