В новом выпуске мы обсудили технологические плюсы Go: главную киллерфичу – многопоточность, конкурентное/ассинхронное выполнение, и вытесняющую многозадачность. Поговорили о Goroutine, каналах, о кодогенерации и использовании профилировщиков.
Иван Соловьёв https://solovev.one
Михаил Непряхин https://t.me/neprja
0:24 Приветствие
0:40 Многопоточное программирование как киллер фича в Go
01:49 Концепция GMP модели
04:00 Сравнение с многопоточностью на C#
04:40 Как вытесняющая многозадачность выполняется в Go
07:18 Как это выглядит на Python и С#
09:22 Быстродействие горутин
11:57 Расшифровываем GMP
14:16 Переход от одной горутины к другой
16:45 Механизмы синхронизации между горутинами
17:31 Самые частые вопросы на собеседовании по Go (про каналы)
20:09 Про Nats
20:36 Еще пара слов о каналах (как в Go работает select)
22:14 Понимание defer в Go
26:22 Кейсы использования кодогенерации в Go
32:30 Go-swagger
33:53 Когда First API подход не приживается
36:21 Опыт использования pprof golang
39:27 Когда нужен debugger
42:06 Режимы профилировщика
43:46 Сравнение работы со строками в Rust
44:40 Механизм создания исключения и его отлова (panic и recover) и когда её стоит использовать
48:40 Еще немного о горутинах