❓ Что делает //go:linkname
Anonymous Poll
9%
Определяет зависимость между модулями в go.mod
43%
Указывает линкеру объединить несколько объектных файлов в один бинарник
30%
Связывает локальную переменную или функцию с сущностью из другого пакета
18%
Помечает функцию как exported для использования в C-коде через cgo
❓ Переменные, объявленные, но не использованные в Go, приведут к ошибке в рантайме
Anonymous Poll
43%
Да
57%
Нет
1%
Наверное
❓ Что делает math.Trunc()
Anonymous Poll
76%
Отсекает дробную часть числа
6%
Отсекает целую часть числа
4%
Оставляет в числе только нули
17%
Убирает нули из числа
❓ Почему в мапе могут возникать коллизии
Anonymous Poll
3%
Потому что Go использует недостаточно быстрые хеш-функции
87%
Несколько разных ключей могут дать одинаковый хеш или попасть в один bucket
9%
map в Go имеет фиксированный размер и при превышении лимита новые ключи вытесняют старые
6%
Вместо хранения полного хеша для каждого ключа используется только первый байт
👍1
❓ Вопросы прошлой пятидневной недели мне _____________
Anonymous Poll
15%
Очень понравились
32%
Понравились
18%
Скорее не понравились
12%
Не понравились
38%
Почему такой акцент на пятидневной неделе?
👍1
❓ Какие методы предоставляет atomic.Value
Anonymous Poll
27%
Read() и Write()
11%
Lock() и Unlock()
3%
Start() и Stop()
63%
Store() и Load()
❓ Что произойдет, если в atomic.Value сначала записать строку, а потом попытаться записать целое число
Anonymous Poll
36%
Значение перезапишется без ошибок
53%
Программа завершится с паникой
7%
Второе значение проигнорируется
6%
Произойдет дедлок
❓ Обеспечивает ли atomic.Value потокобезопасность вложенным полям структуры
Anonymous Poll
27%
Да, полностью
59%
Нет, только атомарность самой структуры
15%
Да, но только для числовых типов
0%
Только для полей типа string
1%
Нет, если полей больше 10
❓ Что означает понятие потокобезопасность
Anonymous Poll
3%
Код захэшируется при выполнении параллельно
89%
Код корректно выполнится при выполнении параллельно
7%
Код скрывает переменные при выполнении параллельно
3%
Код нельзя запустить параллельно
❓ В какой момент вычисляются аргументы функции, вызванной с defer
Anonymous Poll
32%
Во время выполнения отложенной функции
58%
В момент объявления defer
7%
В конце программы
4%
Во время компиляции
❓ Что произойдет с порядком выполнения нескольких defer вызовов в одной функции
Anonymous Poll
11%
Выполняются в порядке их объявления
1%
Выполняются одновременно горутинами
85%
Выполняются в обратном порядке
2%
Выполняются случайно
❓ Когда отправитель блокируется на буферизованном канале
Anonymous Poll
5%
Всегда, до момента чтения значения
89%
Только если буфер заполнен
2%
Никогда
5%
Только при размере буфера 1
❓ Как ведёт себя получатель в буферизованном канале
Anonymous Poll
12%
Никогда не блокируется
70%
Блокируется, если буфер пуст
16%
Блокируется, только если буфер полон
2%
Блокируется всегда
❓ Где хранится содержимое буфера буферизованного канала
Anonymous Poll
14%
В стеке отправителя
7%
В стеке получателя
71%
В кольцевом буфере внутри структуры hchan
12%
В глобальном heap без структуры
❓ Что происходит с данными при небуферизованной передаче, когда есть ожидающий получатель
Anonymous Poll
16%
Копируются в кольцевой буфер и оттуда читаются
6%
Переносятся через глобальную очередь событий
71%
Копируются напрямую между стеками горутин
11%
Перемещаются с помощью memcpy внутри heap
❓ Что произойдёт, если отправить в полный буферизованный канал без конкурентного получателя
Anonymous Poll
7%
Паника
4%
Потеря данных
75%
Блокировка отправителя до освобождения места
17%
Системный deadlock
❤1
❓ Сколько элементов может быть в бакете у мапы
Anonymous Poll
2%
4
50%
8
7%
16
1%
24
8%
32
37%
Бесконечно
👍2
❓ От чего зависит размерность типа int
Anonymous Poll
6%
От версии компилятора
88%
От архитектуры платформы
1%
От количества переменных в коде
1%
От настроек IDE
6%
От переданных аргументов при старте программы
👍1
👍1
❓ Какой размер у переменной, типом которой является интерфейс на x64 архитектуре
Anonymous Poll
7%
4 байта
37%
8 байт
30%
16 байт
27%
Зависит от интерфейса
🌐 HTTP уже не тянет? В микросервисной архитектуре запросы множатся, скорость падает, а код превращается в клубок зависимостей. Настало время познакомиться с инструментом, который решает эти проблемы изящно — gRPC.
📗 На открытом уроке вы разберёте, как работает этот фреймворк, почему он вытесняет REST и как описывать API с помощью Protobuf. Вы узнаете, как обеспечить обратную совместимость между сервисами, повысить производительность и упростить взаимодействие микросервисов.
❗️После вебинара вы сможете строить быстрые и надёжные коммуникации между сервисами на Go — с чистой архитектурой и минимумом боли.
➡️ 12 ноября в 20:00 МСК. Открытый вебинар проходит в преддверии старта курса «Golang Developer. Professional». Регистрируйтесь и узнайте, почему gRPC становится стандартом нового поколения для Go-разработчиков: https://clck.ru/3QB9xp
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
📗 На открытом уроке вы разберёте, как работает этот фреймворк, почему он вытесняет REST и как описывать API с помощью Protobuf. Вы узнаете, как обеспечить обратную совместимость между сервисами, повысить производительность и упростить взаимодействие микросервисов.
❗️После вебинара вы сможете строить быстрые и надёжные коммуникации между сервисами на Go — с чистой архитектурой и минимумом боли.
➡️ 12 ноября в 20:00 МСК. Открытый вебинар проходит в преддверии старта курса «Golang Developer. Professional». Регистрируйтесь и узнайте, почему gRPC становится стандартом нового поколения для Go-разработчиков: https://clck.ru/3QB9xp
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru