Семафор — что это такое и где его взять в Go?
Семафор ограничивает число одновременных участников. В Go простой вариант — буферизированный канал, а для взвешенных разрешений есть golang.org/x/sync/semaphore.
Читать ответПодготовка к интервью
Разбирайте реальные вопросы, сверяйтесь с подробными ответами и готовьтесь по технологиям и компаниям.
Проверьте, насколько резюме подходит выбранной позиции, и получите рекомендации по улучшению.
Каталог
Семафор ограничивает число одновременных участников. В Go простой вариант — буферизированный канал, а для взвешенных разрешений есть golang.org/x/sync/semaphore.
Читать ответОбъясните выбор Go через задачи и личный опыт: backend, конкурентные операции, простоту сборки или поддержку сервиса. Назовите и осознанные компромиссы.
Читать ответСначала определите симптом: рост CPU, памяти, задержки или числа горутин. Выберите соответствующий профиль и сопоставьте его с метриками и изменениями релиза.
Читать ответНазовите свойства Go, которые помогают вашим задачам, и конкретные компромиссы. Например, простой toolchain и конкурентность удобны, а GC и явная обработка ошибок требуют внимания.
Читать ответContext передаёт deadline и сигнал отмены по цепочке вызовов. WithTimeout задаёт относительный срок, WithDeadline — абсолютный, WithCancel — ручную отмену.
Читать ответУ http.Client настраивают общий Timeout, Transport, политику redirects и cookie jar. Transport управляет соединениями, proxy и отдельными этапами ожидания.
Читать ответГорутина нужна, когда работа действительно может идти независимо или нужно перекрыть ожидание I/O. Она добавляет координацию, отмену и ответственность за завершение.
Читать ответДайте короткую структуру: специализация, релевантные проекты, личный вклад, опыт Go и глубина работы с Kubernetes. Не пытайтесь вместить всю биографию.
Читать ответДаже простая программа содержит необходимую поддержку runtime и служебные данные бинарника. Размер около 2 МБ — пример, а не гарантированный минимум.
Читать ответПосле i-го успешного задания отправляйте 100*i/n. Отправка должна учитывать отмену, иначе медленный или ушедший получатель заблокирует выполнение.
Читать ответТипы удобно делить на базовые значения, составные структуры, ссылки и интерфейсные абстракции. При этом все аргументы функций Go передаются по значению.
Читать ответОС загружает исполняемый файл и передаёт управление точке входа. Runtime Go инициализирует окружение, память и планировщик, затем выполняются инициализация пакетов и main.main.
Читать ответ