Библиотека Go для собеса | вопросы с собеседований
6.85K subscribers
234 photos
9 videos
1 file
482 links
Вопросы с собеседований по Go и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/0b524a15

Для обратной связи: @proglibrary_feeedback_bot

Наши каналы: https://t.iss.one/proglibrary/9197
Download Telegram
Сегодня премьера

В 19:00 МСК стартует бесплатный вебинар с Максимом Шаланкиным«ИИ-агенты: новая фаза развития искусственного интеллекта».

В программе:
— почему агенты ≠ чат-боты;
— живое демо простого агента;
— и как эта тема встроена в курс, который разработан под руководством Никиты Зелинского.

Это прямой эфир: подключиться можно через лендинг курса.
Где Go хранит загруженные зависимости локально

Зависимости хранятся в GOPATH/pkg/mod (модульный кэш), а не в папке проекта. Это позволяет повторно использовать одну и ту же версию пакета в нескольких проектах.

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Как проверить, что контекст был отменён или достиг дедлайна

Каждый контекст, который может быть отменён (WithCancel, WithTimeout, WithDeadline), содержит канал Done(), который закрывается, когда контекст отменяется или истекает дедлайн.

select {
case <-ctx.Done():
fmt.Println("Context cancelled or deadline exceeded:", ctx.Err())
default:
// Продолжаем работу
}


Метод Err() позволяет получить конкретную причину, по которой контекст завершился.

ctx, cancel := context.WithTimeout(context.Background(), time.Second)
defer cancel()

time.Sleep(2 * time.Second) // превышаем таймаут

if err := ctx.Err(); err != nil {
fmt.Println("Context error:", err) // выведет: DeadlineExceeded
}


🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Какие типы горутин есть в Go

Формально они не делятся на типы, но по применению можно выделить обычные (для асинхронных задач), для параллелизма (с sync.WaitGroup или каналами), для обработки событий (например, в серверах), в пуле воркеров (для управления нагрузкой) и фоновые (для длительных задач).

Их поведение определяется контекстом и механизмами синхронизации, такими как каналы или мьютексы.

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
6
Можно ли использовать один контекст для нескольких горутин

Да, один контекст в Go можно использовать в нескольких горутинах одновременно.

Контекст — это immutable-структура: она содержит информацию о дедлайне, таймауте, функции отмены и ключ-значение, и при этом безопасна для параллельного доступа. Это значит, что несколько горутин могут слушать один и тот же контекст и реагировать на его отмену без риска гонок или повреждения данных.

Например, если создать контекст с таймаутом, несколько воркеров могут одновременно подписаться на ctx.Done(). Как только таймаут срабатывает или вызывается cancel(), канал закрывается, и все горутины получают сигнал и корректно завершают работу.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🤔1
🔥 Сегодня последний день скидки!

На недавнем вебинаре «ИИ-агенты: новая фаза развития AI» мы показали, как агенты уже меняют работу Data Scientists и инженеров.

Что тебя ждёт на курсе:

⚡️ создашь своего ИИ-агента с нуля
⚡️ соберёшь RAG-систему
⚡️ научишься адаптировать LLM под реальные данные бизнеса

До конца этого дня цена на курс 57 000 ₽. Уже завтра будет 69 000 ₽. Успевай записаться (используй промокод datarascals).

🔗 Записаться на курс