TGViewer
Channel Public Channel
Igor Panasyuk | IGORoutine Programming

Igor Panasyuk | IGORoutine Programming

@igoroutine

Тимлид Яндекса, разрабатываю эквайринг, обеспечивающий обработку всех платежей компании. Доцент практики в ИТМО, веду несколько курсов, также преподаю в ШАД. Выступаю на конференциях, делюсь опытом в соцсетях и помогаю развитию Go-сообщества
Subscribers
2.21K
Photos
113
Videos
8
Links
76

Showing posts older than #50 · Back to latest

Older Posts 17 shown
Post #49 2.41K
🙂 Что будет выведено в 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
}
  • 😱 4
  • 🔥 2
  • 🤔 2
  • ❤ 1
Post #48 1.83K

Forwarded from igoroutine.courses

Кстати, курс The Nature Of Concurrency начинается совсем скоро, нас уже более 20 человек! Не упусти свой шанс стать мастером многопоточного программирования!
  • ❤ 10
  • 🔥 2
  • 🗿 2
  • 👍 1
Post #47 1.69K

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.

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

🙄🙄 Ещё больше примеров на курсах
  • ❤ 14
  • 🔥 4
  • 😱 3
  • 👍 1
Post #45 1.6K

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 старое
  • ❤ 5
  • 🤔 3
Post #44 1.77K

This post (sticker, poll or similar) has no web preview. Open in Telegram

  • ❤ 15
  • ⚡ 6
  • 👍 3
  • 🕊 2
  • 🥰 1
Post #43 1.81K

This post (sticker, poll or similar) has no web preview. Open in Telegram

  • ❤ 15
  • ⚡ 6
  • 👍 3
  • 🕊 2
  • 🥰 1
Post #42 1.83K
🙄🙄 Сегодня был на Saint-HighLoad++ 2025, посетил несколько интересных докладов. Было очень приятно пообщаться с подписчиками, которые узнавали меня, в том числе на стендах)) Несколько человек спрашивали про мой курс, который начнётся уже совсем скоро.

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

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

В ближайшее время выложу видео про систему типов в Go, пишите в комментариях, что лично вам было бы интересно узнать.
  • ❤ 9
  • 🔥 5
  • ⚡ 2
Post #41 2.02K
📹Выступил на главной конференции по Go | Live Blog + Розыгрыш | Golang Conf X 2025

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

▶️ YouTube
📱 VK Видео
⚫️ Дзен
🟣 Rutube
  • 🔥 24
  • ❤ 6
  • 👏 5
Post #36 2.37K
🙄🙄 Интервью

Alex Rios
Senior Staff Engineer
Stone
  • ❤ 7
  • 🔥 7
Post #33 2.81K
🙂Вчера выступил на GolangConf. Готовлю для вас полноценный влог моей поездки. В целом все прошло хорошо.

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

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

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

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

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

👍👍 РЕЗУЛЬТАТЫ 👍👍
  • 🔥 21
  • ❤ 9
Post #31 2.08K
Igor Panasyuk | IGORoutine Programming 🙄🙄 Я запустил свой мерч

This post (sticker, poll or similar) has no web preview. Open in Telegram

  • ❤ 5
  • 🤣 4
  • 🔥 2
Post #29 2.01K
🙄🙄 Я запустил свой мерч

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

Помимо этого, за лучший вопрос после доклада подарю сертификат на бесплатное обучение на курсе. Кстати, мест осталось немного
  • ❤ 13
  • 🔥 7
  • 👍 1
Post #28 1.92K
📹Создатели Go ОШИБЛИСЬ, создавая ЭТОТ CONCURRENCY примитив

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

▶️ YouTube
📱 VK Видео
⚫️ Дзен
🟣 Rutube
4️⃣ Исходники | Презентация
  • 🔥 12
  • ❤ 5
  • 👍 3
Post #27 2.07K
⏺Про курс и ближайший контент на канале
  • ❤ 12
  • 👍 5
  • ⚡ 4
  • 🔥 3
Post #26 2.04K

Forwarded from igoroutine.courses

Как создавался курс?

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

Подробную информацию о курсе можно посмотреть на сайте
  • 🔥 14
  • 👍 4
  • ❤ 3
  • ⚡ 3
Post #25 1.89K

Forwarded from igoroutine.courses

The Nature of Concurrency — курс, который посвящён многопоточному программированию. В курс вложена не только душа, но и знания, которые можно применить в любом языке, поскольку принципы многопоточного программирования везде одинаковы.

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

▶️ Анонс курса на YouTube
  • 🔥 10
  • ❤ 5
  • 👍 4
  • ⚡ 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →