❓ Как объявить алиас для типа int
Anonymous Poll
72%
type MyInt int
18%
type MyInt = int
8%
alias MyInt int
3%
var MyInt = int
🤡9🤯1🥴1
❓ Зачем используют алиасы при импорте пакетов
Anonymous Poll
3%
Чтобы ускорить компиляцию
1%
Для создания новых пакетов
96%
Для предотвращения конфликтов имен
2%
Для уменьшения размера бинарника
🌭2
❓ Можно ли присваивать значение типа-алиаса значению оригинального типа
Anonymous Poll
18%
Нет, это разные типы
47%
Да, они полностью совместимы
33%
Только через явное преобразование
4%
Только если это указатели
❓ Можно ли создавать алиасы для встроенных типов, например string
Anonymous Poll
4%
Нет, только для пользовательских
94%
Да, алиасы можно для любых типов
1%
Только для структур
1%
Только для интерфейсов
❓ Влияют ли алиасы на производительность кода
Anonymous Poll
4%
Да, сильно замедляют
91%
Нет, это всего лишь синонимы типов
4%
Зависит от компилятора
2%
Только в отладке
❓ Что описывает паттерн fan-out в контексте конкурентного программирования
Anonymous Poll
32%
Сбор результатов с нескольких горутин в один поток.
65%
Распараллеливание одной задачи на множество горутин.
3%
Последовательное выполнение задач для экономии ресурсов.
1%
Проверку состояния всех горутин.
❤2
❗️ Оцените вопросы прошлой недели в двоичной системе
Anonymous Poll
24%
001
5%
010
20%
011
32%
100
27%
101
🤔2
❓ Какой механизм Go используется для реализации паттерна fan-in
Anonymous Poll
13%
Мьютекс
85%
Каналы
2%
Таймеры
2%
Интерфейсы
🤡39
❓ В чем ключевое отличие fan-out/fan-in от простого параллелизма
Anonymous Poll
62%
Fan-out/fan-in включает централизованный сбор результатов
11%
Fan-out/fan-in выполняет задачи последовательно
2%
Fan-out/fan-in не использует каналы
30%
Fan-out/fan-in использует мультипараллельную парадигму
❓ В каком случае изменения в срезе могут перестать быть видны в другом срезе
Anonymous Poll
5%
При изменении отдельного элемента среза
14%
При получении под-среза с помощью [a:b]
69%
При использовании append при полном заполнении capacity
17%
Изменения в любом случае будут видны
❓ В каком случае можно использовать пользовательские типы как ключи в мапе
Anonymous Poll
1%
Тип содержит только экспортируемые поля
84%
Тип состоит только из сравнимых полей
10%
Тип реализует интерфейс Stringer
6%
Тип является указателем
❓ Что обозначает параметр GOGC
Anonymous Poll
8%
Максимальный размер памяти, доступной приложению
73%
Процент прироста памяти перед запуском сборщика мусора
14%
Количество горутин в программе
6%
Версию компилятора Go
❓ Сколько верных ответов было у вас на этой неделе
Anonymous Poll
50%
5-7
17%
3-4
9%
1-2
24%
Ни одного, ну и вопросы!
🤡2
❓ Для каких объектов sync.Pool подходит лучше всего
Anonymous Poll
11%
Крупные долгоживущие структуры конфигурации
11%
Долгоживущие singletons
76%
Часто создаваемые, короткоживущие временные объекты
4%
Только сетевые соединения
❓ Как правильнее всего поступить с bytes.Buffer перед возвратом в sync.Pool
Anonymous Poll
14%
Ничего не делать, просто положить как есть
57%
Вызвать Reset() и затем положить в пул
26%
Обнулить указатель через buf = nil и положить в пул
6%
Освободить через runtime.Free()
❓ Почему использование sync.Pool для редких и дешёвых аллокаций обычно не даёт пользы
Anonymous Poll
9%
sync.Pool работает только при высоком уровне конкуренции
85%
Накладные расходы на пул могут быть выше, чем выгода от экономии аллокаций
6%
GC игнорирует такие объекты
2%
sync.Pool нельзя использовать для небольших объектов
❓ Что произойдёт, если положить в один sync.Pool значения разных типов, а при Get() делать жёсткий type assertion к одному типу
Anonymous Poll
14%
Компилятор не даст собрать код
9%
Get() автоматически приведёт тип к нужному
74%
Возможна паника в рантайме при неверном type assertion
4%
Значения других типов будут молча игнорироваться
❓ Что делает метод Get() у sync.Pool, если внутри нет ни одного объекта и поле New не задано
Anonymous Poll
13%
Паникует
17%
Блокируется, пока не появится объект
24%
Создаёт новый объект через reflect.New
48%
Возвращает nil
❓ Поставьте эмодзи, который ассоциируется с вопросами прошедшей недели
Anonymous Poll
22%
👍
16%
⚡️
10%
⭐️
35%
🤨
18%
😢
14%
😞