Библиотека Go для собеса | вопросы с собеседований
6.88K subscribers
225 photos
8 videos
1 file
441 links
Вопросы с собеседований по Go и ответы на них.

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

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

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

Наши каналы: https://t.iss.one/proglibrary/9197
Download Telegram
Какой будет результат при различных состояниях канала во время чтения из этого канала

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
This media is not supported in your browser
VIEW IN TELEGRAM
☝️ Один мудрый тимлид дал двум своим разработчикам по «таланту» — мощной, но своенравной LLM.

Первый разработчик испугался её «галлюцинаций». Он запер модель в песочнице, не давая ей доступа к свежим данным. На вопросы модель отвечала красиво, но часто придумывала факты, то есть врала. Он просто «закопал» свой талант, боясь им пользоваться.

Второй же разработчик не побоялся. Он построил для своей LLM систему RAG — дал ей «лопату и карту», чтобы находить сокровища в базе знаний компании. Его AI-агент отвечал точно по делу, ссылаясь на реальные документы. Он заставил свой «талант» работать и приносить пользу.

Мощь LLM раскрывается не в ней самой, а в системах, которые вы строите вокруг неё.


Именно такие системы мы и будем строить на втором потоке нашего курса «AI-агенты для DS-специалистов». Мы не просто поговорим о RAG, а соберём полный пайплайн с оценкой качества, чтобы ваш агент не врал.

Представьте, что вы сможете начать изучать эту сложную и востребованную тему уже 15 сентября, а не ждать официального старта в октябре. У вас будет фора в 3 недели, чтобы спокойно разобраться в векторных базах и подходе «LLM as a Judge».

💸 Цена 49.000 ₽ действует последние 4 дня — до 24 августа.

👉 Начать строить RAG раньше других
🥱21👾1
Какой будет результат при различных состояниях канала во время записи в этот канал

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

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
Что такое паттерн «Команда» и как его реализовать в Go

Паттерн «Команда» — поведенческая модель, которая оборачивает запросы или операции в объекты, позволяя откладывать их выполнение, выстраивать в очереди, отслеживать историю и отменять.

В Go вместо абстрактных классов применяются пользовательские типы, их значения и интерфейсы, а для реализации используется агрегирование и встраивание.

Основные компоненты паттерна:
1. Command — объект-запрос для выполнения.
2. Receiver — объект, выполняющий команду.
3. Invoker — инициатор запроса, отправляющий команду.

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

Для реализации нужно:
1. Интерфейс Command, описывающий общие методы команд.
2. ConcreteCommand — класс, реализующий команду и взаимодействующий с Receiver.
3. Invoker — класс, инициирующий выполнение команд.
4. Receiver — класс, выполняющий действия.

Invoker может инициировать выполнение и отмену команды. ConcreteCommand отправляет запросы на выполнение в Receiver.

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🥱2
This media is not supported in your browser
VIEW IN TELEGRAM
Так, владелец макбука. Хватит позировать в кофейне.

Настоящее портфолио — это не стикеры на крышке, а проект с чистым кодом, README и рабочей демкой.

Не знаешь, как такой собрать? Научим. Наш курс «ML для старта в Data Science» — это пошаговый гайд к проекту, за который не стыдно.

ОСТАЛАСЬ НЕДЕЛЯ, чтобы забрать его по старой цене в 44.000 ₽. С 1 сентября — всё.

🎁 И да, при покупке курса ML до 1 сентябрякурс по Python получаешь бесплатно.

👉 Апгрейд от «вайба» до «оффера» тут
🥱4
Какие есть уровни изоляции транзакций

Уровни изоляции — это правила, по которым параллельные операции «видят» изменения друг друга.

1. Read Uncommitted. Видите чужие черновики. Можно прочитать число, которое через минуту откатят. Быстро, но риск получить «мнимые» значения.

2. Read Committed. Видите только то, что уже сохранено. Однако между двумя одинаковыми запросами результат может поменяться: кто-то успел обновить те же строки.

3. Repeatable Read. Если вы начали чтение, те же строки для вас не «прыгают» до конца операции. Но в подборку могут добавиться новые подходящие строки, которых изначально не было (вы начали считать — а в систему пришли новые записи).

4. Serializable. Самый строгий режим: система делает так, будто операции выполнялись по очереди. Итог предсказуемый, но возможны ожидания и повторные попытки под высокой нагрузкой.

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍4
📢 Какой сетап идеально подойдёт для разработки AI-агента?

Голосуйте за свой вариант и пишите в комментариях, в каком режиме вы реально кодите.

❤️ — 1
👍 — 2
⚡️ — 3
👏 — 4
🔥 — 5
🎉 — 6
😁 — 7
😍 — 8
🤩 — 9

Какой бы сетап ни был, без AI-агентов в 2025 всё равно далеко не уедешь.

👉 Научим, как строить агентов, которые кодят с тобой
7👍7🔥73😍2
Какую разницу имеют поверхностное и глубокое копирование в Go

Поверхностное копирование создает новую переменную или структуру, которая ссылается на те же данные, что и исходная переменная.

Используется, когда нужно работать с одними и теми же данными, но с разными именами, и изменения в одной переменной не должны затронуть другую.
original := []int{1, 2, 3}
copied := original
copied[0] = 99
fmt.Println(original) // [99 2 3]


Глубокое копирование создает новую переменную с независимыми копиями данных.

Глубокое копирование особенно важно при работе со сложными структурами данных, где изменение одного элемента может повлиять на всю структуру. Также оно применяется при сериализации данных или создании полной копии структуры.
Пример с библиотекой:
import "github.com/mohae/deepcopy"

original := []int{1, 2, 3}
copied := deepcopy.Copy(original)
copied[0] = 99
fmt.Println(original) // [1 2 3]


🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👏1
Почему одна и та же выборка чисел с плавающей точкой даёт разные итоги при разном порядке сложения

Потому что компьютер хранит десятичные дроби приблизительно (в двоичной форме IEEE-754), и при каждом сложении происходит округление. Меняя порядок слагаемых, Вы меняете последовательность округлений — отсюда чуть разные итоги.
Говоря иначе: сложение таких дробей неассоциативно.

Что происходит:
• Числа вроде 0.1/0.2/0.3 не представимы точно, их двоичные «хвосты» обрезаются.
• На каждом шаге суммирования происходит новое округление. В другом порядке эти округления происходят в других местах.
Маленькие слагаемые рядом с большими могут «теряться», почти противоположные — «съедать разряды».
• Разница обычно микроскопическая, порядка 1–2 ULP — минимальных шагов представления, но для строгого сравнения это уже другие числа.

Как с этим жить:
• Не рассчитывайте на «точное равенство» результатов — сравнивайте с допуском (абсолютным/относительным).
Фиксируйте порядок вычислений и применяйте более устойчивые схемы суммирования на длинных рядах.
• Для денег и отчётности используйте десятичные или целочисленные представления — там нужна точность без двоичной погрешности.

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Осталось 48 часов!

Обратный отсчёт пошёл: только до воскресенья 23:59 можно купить курс «AI-агенты для DS-специалистов» и начать учиться уже с 15 сентября.

⚡️ Это ваши +3 недели форы, чтобы спокойно разобраться в самых сложных темах и прийти к первому занятию 7 октября уже подготовленным.

👉 Забрать место
Какова роль middleware при построении HTTP-слоя в Go

Middleware в Go — это промежуточные обработчики, которые перехватывают и обрабатывают HTTP-запросы и ответы до того, как управление попадёт к конечным хендлерам.

Назначение. Аутентификация и авторизация, логирование, обработка ошибок, ограничения частоты, CORS и др.

Форма в Go. Обычно это функции, совместимые с http.Handler/http.HandlerFunc, что позволяет строить цепочки middleware, легко комбинируя и переиспользуя их в разных участках приложения.

Пример сценария. Middleware аутентификации проверяет валидный токен в заголовке запроса; при отсутствии или некорректности немедленно возвращает ошибку, не передавая управление дальше.

Инструменты. Популярные решения с поддержкой middleware: Gorilla Mux, Gin, Echo.

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3