Примеры с реальных Golang собесов 2023: typed nil
ฝัง
- เผยแพร่เมื่อ 22 ส.ค. 2024
- Еще один класс задач с собеседований на позицию Go разработчиков.
Клуб АйТи красавчиков с еженельными созвонами, приватным чатом для подписчиков и уникальным контентом - boosty.to/itkr...
Пример номер 1: goplay.space/#...
Пример номер 2: goplay.space/#...
dave.cheney.ne...
go.dev/doc/faq...
Видео про вопрос на миллион долларов: • Вопрос по Golang на ми...
Видео про задачи на append: • Примеры с реальных Gol...
Видео про задачи на change pointer: • Примеры с реальных Gol...
Видео про задачи на loopvar: • Примеры с реальных Gol...
Видео про задачи на каналы и горутины: • Примеры с реальных Gol...
Видео про задачи на GOMAXPROCS и defer: • Примеры с реальных Gol...
Оставить заявку для участия в программе "Процент от ЗП" можно здесь - it-krasavchik.... - или на почту - it@krasavchik.club - или в телегу - t.me/itkrasavchik
Клуб АйТи Красавчиков в дискорде - / discord
Спасибо, очень интересное и полезное видео
On the next week will have a Go interview, have a lot of blank spaces, don't have a feeling that I'm prepared well :/
But anyway, it is what it is will try my best.
Thank you again for your attention again, hope I will see next video!
Please contact me in telegram tomorrow - we can setup a call on weekend to discuss your interview.
@@itkrasavchik Okay, I will, thank you :)
Огонь!
Очень полезные видосы делаешь. Нашел случайно, когда на работе искал материалы по гошке. Странно, что так мало актива на таком контенте, мб в СНГ гошка еще не так популярна.
Я сейчас на старте своей профессиональной карьеры. Закончил прикладную информатику и успел поработать low code разработчиком 10 месяцев в региональной компании. Месяц назад смог пробиться в этой же компании на full stack разработчика (golang/angular). Сейчас параллельно изучаю технологии и учусь в магистратуре. Хотел узнать о твоих продуктах. Они нацелены на middle/senior разработчиков?
В сети очень популярно менторство, интересно берешь ли ты таких зеленых как я, не в плане поиска удаленки, до нее мне еще нужно отпахать свое. А в плане расстановки приоритетов и корректировки обучения. В вузе часто замечал как расширяется мой кругозор и развиваются навыки, когда общался с преподавателями лично. Поэтому понимаю, что у человека с международным опытом работы в it есть чему поучиться
Я за последнюю неделю сделал больше видосов, чем за предыдущие полгода )) так что в целом не сильно странно )
@@itkrasavchik , если несложно ответь на мой вопрос. Может быть ты не увидел полностью мой коммент предыдущий
@@saintcamper828 Не увидел ) Я сейчас делаю упор на "Процент от ЗП" - там опыт нужен от года, но в целом все возможно. Напиши мне в телегу - посмотрим.
Опасная штука. Сделать ресивер указателем (e *myError) Error() и if (err != nil) fmt.Println(err.Error()) приведет к панике. Поэтому если ошибок нет, то явно возвращать nil. Я так исходящий тип у функции поменял: func bar() error поменял на bar() *myError. А чо, компилируется же и даже внутренность bar() не поменялась. Как было внутри bar() выражение return nil так и осталось, указатель же. Вот только смысл вызова foo(bar()) где foo(e error) начисто поменялся. Компилер присоседил тип к транзитному nil и foo сломалось. В гохе nil как указатель и nil для интерфейсов разные вещи.
Спасибо за видео! Скажи пожалуйста спрашивают ли про дженерики на собесах?
Только твое личное мнение. В примерах нет.
Подскажи, пожалуйста, как верно использовать WaitGroup и Mutex - по указателю или по значению. Вроде говорят, что нужно по указателю, хотя многие используют по значению. А работает вроде одинаково.
wg := &sync.WaitGroup{} // по указателю
wg := sync.WaitGroup{} // по значению
for i := 0; i < 5; i++ {
wg.Add(1)
go func(i int) {
defer wg.Done()
fmt.Println(i)
}()
}
wg.Wait()
Если передавать мьютекс по значению, то потенциально у тебя Lock и Unlock будут работать на разных мьютексах (оригинале и его копии) - и никакой блокировки тут конечно не будет. То же самое по waitgroups: при передаче по значению Done() у тебя будет на одной группе, а Wait() - на другой. Пример - stackoverflow.com/questions/36407206/best-way-of-using-sync-waitgroup-with-external-function
@@itkrasavchik выходит, потенциально такие ситуации могут возникнуть только если передавать wg или mutex по значению в функцию через входные параметры
А в моем примере можно спокойно использовать
wg := sync.WaitGroup{}
@@user-kp4mt2jc3dда, в твоем случае разницы нет
True false false false
Failed to run error:
@@user-yt2sb9tl3p Красавчик ) Надеюсь не запускал ;)