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

Курс преподаётся на языке Go, подробную информацию о нём можно посмотреть на сайте

▶️ Анонс курса на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥105👍41
Forwarded from igoroutine.courses
Как создавался курс?

В курс вложен весь мой личный опыт, связанный с многопоточным программированием. Помимо этого, во время создания курса я консультировался с ведущими разработчиками индустрии, например, общался с Романом Елизаровым — Ex Project Lead разработки языка Kotlin, человеком, который разрабатывал те самые корутины, также я учился многопоточному программированию у него в университете.

Подробную информацию о курсе можно посмотреть на сайте
1🔥14👍433
Про курс и ближайший контент на канале
Please open Telegram to view this post
VIEW IN TELEGRAM
1212👍54🔥31
📹Создатели Go ОШИБЛИСЬ, создавая ЭТОТ CONCURRENCY примитив

Ролик про тонкости и нюансы многопоточного программирования. Не всегда программа, в которой нет гонок, является корректной. Что мы вообще понимаем под корректностью? Рассказываю про всё это в ролике, приятного просмотра!

▶️ YouTube
📱 VK Видео
⚫️ Дзен
🟣 Rutube
4️⃣ Исходники | Презентация
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥1275👍3
🙄🙄 Я запустил свой мерч

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

Помимо этого, за лучший вопрос после доклада подарю сертификат на бесплатное обучение на курсе. Кстати, мест осталось немного
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1138🔥7👍1
🙂Вчера выступил на 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