Igor Panasyuk | IGORoutine Programming
2.16K subscribers
112 photos
8 videos
75 links
Тимлид Яндекса, разрабатываю эквайринг, обеспечивающий обработку всех платежей компании. Доцент практики в ИТМО, веду несколько курсов, также преподаю в ШАД. Выступаю на конференциях, делюсь опытом в соцсетях и помогаю развитию Go-сообщества
Download Telegram
🙂Вчера выступил на GolangConf. Готовлю для вас полноценный влог моей поездки. В целом все прошло хорошо.

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

Было приятно увидеть, что на одном из стендов, где разыгрывали гофера, спрашивали вопрос, о котором я снял целое видео.

Спасибо большое всем, кто пришёл меня поддержать, зал был полностью забит.

В комментариях к прошлому посту меня просили устроить конкурс на мерч @igoroutine. На самой конференции я выиграл довольно много мерча, например, взял гофера от Т-Банка за топ-1 решение их задачи.

Среди комментариев под этим постом выберу трёх победителей, которым я подарю свой мерч, а также мерч с конференции. Главный приз - большой синий гофер. Результаты будут примерно через 2-3 недели.

👍👍 РЕЗУЛЬТАТЫ 👍👍
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥218543
Media is too big
VIEW IN TELEGRAM
🙄🙄 Интервью

Alex Rios
Senior Staff Engineer
Stone
Please open Telegram to view this post
VIEW IN TELEGRAM
3107🔥76
📹Выступил на главной конференции по Go | Live Blog + Розыгрыш | Golang Conf X 2025

Недавно я выступил на одной из самых крупных конференций по Go. Это не первое моё выступление, однако в этот раз я запечатлил своё путешествие для того, чтобы показать его вам. Надеюсь, что такой формат будет интересен, пишите ваше мнение в комментариях и не забывайте участвовать в розыгрыше)

▶️ YouTube
📱 VK Видео
⚫️ Дзен
🟣 Rutube
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥2496👏54
🙄🙄 Сегодня был на Saint-HighLoad++ 2025, посетил несколько интересных докладов. Было очень приятно пообщаться с подписчиками, которые узнавали меня, в том числе на стендах)) Несколько человек спрашивали про мой курс, который начнётся уже совсем скоро.

Также я, участвуя в активностях на стендах от компаний, в том числе про Go, выиграл мерч для розыгрышей на год вперед) Не забывайте участвовать в текущем розыгрыше, скоро я подведу итоги.

Сегодня выступаю на ещё одном мероприятии на яхте, обязательно скину кружочков с площадки.

В ближайшее время выложу видео про систему типов в Go, пишите в комментариях, что лично вам было бы интересно узнать.
Please open Telegram to view this post
VIEW IN TELEGRAM
3159🔥532
This media is not supported in your browser
VIEW IN TELEGRAM
4156👍3🕊2🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
5156👍3🕊2🥰1
Forwarded from igoroutine.courses
🙂 Что будет выведено в stdout?

Version: Go 1.24.1


package main

func main() {
m := make(map[any]any)
insert(m, "IGOROUTINE COURSES")
insert(m, 1)

println(len(m))

}

func insert[T any](m map[any]any, a T) {
type Data struct{}
d := Data{}

m[d] = a
}


P.S. Подсвечено красным, ибо IDE старое
Please open Telegram to view this post
VIEW IN TELEGRAM
85🤔3
Forwarded from igoroutine.courses
🙂 Что будет выведено в stdout?
Anonymous Quiz
29%
1
37%
2
18%
Compilation error
16%
Panic
11😱53
Forwarded from igoroutine.courses
Что будет выведено в stdout?

С точки зрения стандарта языка:

Each type argument is substituted for its corresponding type parameter in the generic declaration. This substitution happens across the entire function or type declaration, including the type parameter list itself and any types in that list.

То есть, тип, объявленный внутри generic-функции insert[T], автоматически захватывает любой T, даже, если сам этот тип не использует T явно.

Таким образом, в
m будут ключи Data[string] и Data[int] и len(m) == 2.

https://go.dev/play/p/Nl250o6wX2X

Но всё немного тоньше. Если написать сигнатуру
func insert[T comparable](m map[any]T, a T), то итоговый ответ будет 1, но почему?

https://go.dev/play/p/EkkuBuwtQJ6

Потому что компилятор попытается вывести тип
T и ему подойдёт только any, следовательно, в m будет всегда один ключ Data[any].

Two instantiated types are identical if they are instantiated from the same generic type and with the same full‑form type argument list.

В таких ситуациях нужно внимательно смотреть за выводом типов

🙄🙄 Ещё больше примеров на курсах
Please open Telegram to view this post
VIEW IN TELEGRAM
114🔥4😱3👍1
Forwarded from igoroutine.courses
Кстати, курс The Nature Of Concurrency начинается совсем скоро, нас уже более 20 человек! Не упусти свой шанс стать мастером многопоточного программирования!
24106🔥2🗿2👍1
🙂 Что будет выведено в stdout?
Версия: ARM64 Go compiler 1.24.2


package main

import (
"fmt"
)

type Key struct {
ID int
Callback func()
}

var globalMap = map[any]any{}

func main() {
callback := func() {
fmt.Println("@igoroutine")
}

key1 := Key{
ID: 1,
Callback: callback,
}
key2 := Key{
ID: 1,
Callback: callback,
}

insert[Key](key1)
insert[Key](key2)
fmt.Println(len(globalMap))
}

func insert[T any](key T) {
globalMap[key] = 27
}
Please open Telegram to view this post
VIEW IN TELEGRAM
111😱4🔥2🤔21
Что будет выведено в stdout?
Anonymous Quiz
22%
1
31%
2
27%
Ошибка компиляции
19%
panic
19😱4🔥2
Что будет выведено в stdout?

С точки зрения стандарта языка:
The comparison operators == and != must be fully defined for operands of the key type; thus the key type must not be a function, map, or slice. If the key type is an interface (то есть any) type, these comparison operators must be defined for the dynamic key values; failure will cause a run-time panic.

В текущем случае тип Key это произведение типов int и func. Поскольку в произведении типов присутствует тип func, то
Key не имеет операторов сравнения != и ==. Поэтому, согласно стандарту, получаем панику:

panic: runtime error: hash of unhashable type main.Key

https://go.dev/play/p/YgAgjKr6Jhp
1135🔥4
🙄🙄 Не забывайте участвовать в конкурсе, результаты будут через 3 дня
Please open Telegram to view this post
VIEW IN TELEGRAM
110👍4🔥3
Кстати, недавно у меня появился свой стикерпак. Пишите в комментариях, какие ещё стикеры туда добавить)
1128🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
112😁5😢4💔2🔥1
Media is too big
VIEW IN TELEGRAM
🙄🙄 Итоги розыгрыша!

🥇№1. Игрушка гофера: @vovs03
🥈№2. Большой блокнот MIR PLATFORM: @gotogoto
🥉№3. Игрушка антистресс копибара: @rel1ct0

Призовые значки @igoroutine:
@Alerinnan
@clvadoze
@ilia_seoi
@pirat_vladik
https://t.me/igoroutine/33?comment=153_Programmist
@Ravwvil
@hontail
@killazius
@max_no_i
@nssqk
@booyakaasha
@single_focus
@iljaborisov
@alex_azh
@kazakni
@John_Kek
@path0fneo

В ближайшее время я напишу в личные сообщения победителям. Не расстраивайтесь, если не выиграли, ещё будет много розыгрышей на круглые даты 🙂

Выражаю огромную благодарность Островку за то, что делают таких классных плюшевых гоферов!
Please open Telegram to view this post
VIEW IN TELEGRAM
1197🔥5😁2👍1
🙄🙄 Backend-митап в Москве: многопоточность, микросервисы, алгоритмы и System Design

🗓 20 сентября
📍 Москва, Пространство «Весна»

Если хочешь разобраться глубже в backend-разработке, системном дизайне, алгоритмах и многопоточке — приходи.

Говорим по существу — про то, что важно в работе и на собеседованиях:

– как строить микросервисы, не превращая код в ад
– что ждёт на System Design-интервью и как его пройти
– как готовиться к собесам и системно учить алгоритмы
– как устроена модель памяти Go и где тебя может поджидать баг; как устроены продвинутые многопоточные примитивы

🎓 Программа

15:00 – 15:30 – Общий сбор

15:30 – 15:50 – Нетворкинг - разделимся на группы, пообщаемся и заведем новые знакомства

15:50 – 16:30 – Игорь Панасюк (Senior в Яндекс) «Особенности и ловушки модели памяти в Go: тайны синхронизации и устройство продвинутых многопоточных примитивов»

16:30 – 17:10 – Леонид Ченский (TeamLead в OzonTech) «Пишем микросервисы на Go как в BigTech, с нуля»

17:10 – 17:30 – Перерыв на фуршет

17:30 – 18:10 – Александр Алексеев (CTO в BigTech) «Зачем и как изучать алгоритмы»

18:10 – 18:50 – Владимир Балун (ex-TeamLead в Яндекс) «Как пройти System Design интервью: взгляд со стороны интервьювера и кандидата»

18:50 – 19:00 – Завершение контентной части, фотосесия

19:00 – 20:00 – Фуршет и нетворкинг на площадке

20:00 - Afterparty - по желанию едем в бар неподалеку и продолжаем общение в неформальной обстановке

🎁 Подарки за лучшие вопросы:

— книги по backend разработке от спикеров
— сертификаты на бесплатное обучение на любом из курсов школы
— бесплатные mock-собеседования от интервьюверов из BigTech
— скидки на обучение в нашей школе

Место: Пространство «Весна»
Спартаковский переулок 2с1, подъезд 7

5 минут от м. Красносельская
7 минут от м. Бауманская

❗️Стоимость билетов пока неизвестна, но уже сейчас можно записаться по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
11610🔥8👻1
📹Что изменилось в Go 1.25 и как теперь проходить собеседования

Считанные дни остались до выхода новой версии Go 1.25. Специально для вас собрал всё самое интересное про релиз в новом видео, приятного просмотра!

▶️ YouTube
📱 VK Видео
⚫️ Дзен
🟣 Rutube
4️⃣ Исходники | Презентация
Please open Telegram to view this post
VIEW IN TELEGRAM
5219🔥11101
🙄🙄 Небольшой отчёт о проведении розыгрыша 📈

Спасибо вам большое за активность и поддержку, мы верно движемся к 1_000 подписчиков, так что следующий розыгрыш не за горами! 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤‍🔥22🔥1163🆒3